$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r71301 - in trunk/libs/spirit/repository/doc/html: . spirit_repository spirit_repository/karma_components/directives spirit_repository/karma_components/nonterminal spirit_repository/qi_components spirit_repository/qi_components/directives spirit_repository/qi_components/nonterminal spirit_repository/qi_components/operators spirit_repository/qi_components/primitive
From: hartmut.kaiser_at_[hidden]
Date: 2011-04-15 19:36:49
Author: hkaiser
Date: 2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
New Revision: 71301
URL: http://svn.boost.org/trac/boost/changeset/71301
Log:
Spirit: regenerated repository docs
Added:
   trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/kwd.html   (contents, props changed)
   trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/operators/
   trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/operators.html   (contents, props changed)
   trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/operators/keyword_list.html   (contents, props changed)
Text files modified: 
   trunk/libs/spirit/repository/doc/html/index.html                                                                |     4 ++--                                    
   trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/directives/karma_confix_generator.html |    18 +++++++++---------                      
   trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/nonterminal/subrule.html               |    24 ++++++++++++------------                
   trunk/libs/spirit/repository/doc/html/spirit_repository/preface.html                                            |    10 +++++-----                              
   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                  |    16 ++++++++--------                        
   trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/nonterminal/subrule.html                  |    26 +++++++++++++-------------              
   trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive/advance.html                    |    22 +++++++++++-----------                  
   trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive/flush_multi_pass.html           |    16 ++++++++--------                        
   9 files changed, 77 insertions(+), 77 deletions(-)
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	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -33,7 +33,7 @@
 </div></div>
 <div><p class="copyright">Copyright © 2001-2011 Joel de Guzman, Hartmut Kaiser</p></div>
 <div><div class="legalnotice">
-<a name="id863156"></a><p>
+<a name="id820812"></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>
@@ -90,7 +90,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: March 26, 2011 at 19:23:38 GMT</small></p></td>
+<td align="left"><p><small>Last revised: April 15, 2011 at 23:36:10 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/directives/karma_confix_generator.html
==============================================================================
--- trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/directives/karma_confix_generator.html	(original)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/directives/karma_confix_generator.html	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -28,7 +28,7 @@
         Confix Generator</a>
 </h4></div></div></div>
 <a name="spirit_repository.karma_components.directives.karma_confix_generator.description"></a><h6>
-<a name="id898353"></a>
+<a name="spirit_repository.karma_components.directives.karma_confix_generator.description-heading"></a>
           <a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.directives.karma_confix_generator.description">Description</a>
         </h6>
 <p>
@@ -93,20 +93,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.directives.karma_confix_generator.header"></a><h6>
-<a name="id899318"></a>
+<a name="spirit_repository.karma_components.directives.karma_confix_generator.header-heading"></a>
           <a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.directives.karma_confix_generator.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to <boost/spirit/repository/home/karma/directive/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.directives.karma_confix_generator.synopsis"></a><h6>
-<a name="id899392"></a>
+<a name="spirit_repository.karma_components.directives.karma_confix_generator.synopsis-heading"></a>
           <a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.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.directives.karma_confix_generator.parameters"></a><h6>
-<a name="id899440"></a>
+<a name="spirit_repository.karma_components.directives.karma_confix_generator.parameters-heading"></a>
           <a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.directives.karma_confix_generator.parameters">Parameters</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -175,7 +175,7 @@
           All three parameters can be arbitrary complex generators themselves.
         </p>
 <a name="spirit_repository.karma_components.directives.karma_confix_generator.attribute"></a><h6>
-<a name="id899603"></a>
+<a name="spirit_repository.karma_components.directives.karma_confix_generator.attribute-heading"></a>
           <a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.directives.karma_confix_generator.attribute">Attribute</a>
         </h6>
 <p>
@@ -202,7 +202,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit_repository.karma_components.directives.karma_confix_generator.example"></a><h6>
-<a name="id899778"></a>
+<a name="spirit_repository.karma_components.directives.karma_confix_generator.example-heading"></a>
           <a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.directives.karma_confix_generator.example">Example</a>
         </h6>
 <p>
@@ -211,7 +211,7 @@
           styles and a function prototype (for the full example code see here: confix.cpp)
         </p>
 <a name="spirit_repository.karma_components.directives.karma_confix_generator.prerequisites"></a><h6>
-<a name="id899808"></a>
+<a name="spirit_repository.karma_components.directives.karma_confix_generator.prerequisites-heading"></a>
           <a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.directives.karma_confix_generator.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -241,7 +241,7 @@
 <p>
         </p>
 <a name="spirit_repository.karma_components.directives.karma_confix_generator.generating_different_comment_styles"></a><h6>
-<a name="id900044"></a>
+<a name="spirit_repository.karma_components.directives.karma_confix_generator.generating_different_comment_styles-heading"></a>
           <a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.directives.karma_confix_generator.generating_different_comment_styles">Generating
           Different Comment Styles</a>
         </h6>
@@ -285,7 +285,7 @@
           */</span> </code>.
         </p>
 <a name="spirit_repository.karma_components.directives.karma_confix_generator.generating_a_function_prototype"></a><h6>
-<a name="id900338"></a>
+<a name="spirit_repository.karma_components.directives.karma_confix_generator.generating_a_function_prototype-heading"></a>
           <a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.directives.karma_confix_generator.generating_a_function_prototype">Generating
           a Function Prototype</a>
         </h6>
Modified: trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/nonterminal/subrule.html
==============================================================================
--- trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/nonterminal/subrule.html	(original)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/nonterminal/subrule.html	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -28,7 +28,7 @@
         subrules</a>
 </h4></div></div></div>
 <a name="spirit_repository.karma_components.nonterminal.subrule.description"></a><h6>
-<a name="id900667"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.description-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.description">Description</a>
         </h6>
 <p>
@@ -86,21 +86,21 @@
           parts), whereas the rest can use rules and grammars.
         </p>
 <a name="spirit_repository.karma_components.nonterminal.subrule.header"></a><h6>
-<a name="id900934"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.header-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to <boost/spirit/repository/home/karma/nonterminal/subrule.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_subrule</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
 </pre>
 <a name="spirit_repository.karma_components.nonterminal.subrule.synopsis__declaration_"></a><h6>
-<a name="id901009"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.synopsis__declaration_-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.synopsis__declaration_">Synopsis
           (declaration)</a>
         </h6>
 <pre class="programlisting"><span class="identifier">subrule</span><span class="special"><</span><span class="identifier">ID</span><span class="special">,</span> <span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A2</span><span class="special">></span> <span class="identifier">sr</span><span class="special">(</span><span class="identifier">name</span><span class="special">);</span>
 </pre>
 <a name="spirit_repository.karma_components.nonterminal.subrule.parameters__declaration_"></a><h6>
-<a name="id901074"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.parameters__declaration_-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.parameters__declaration_">Parameters
           (declaration)</a>
         </h6>
@@ -170,7 +170,7 @@
 </tbody>
 </table></div>
 <a name="spirit_repository.karma_components.nonterminal.subrule.synopsis__usage_"></a><h6>
-<a name="id902369"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.synopsis__usage_-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.synopsis__usage_">Synopsis
           (usage)</a>
         </h6>
@@ -199,7 +199,7 @@
 <span class="special">)(</span><span class="identifier">a1</span><span class="special">,</span> <span class="identifier">a2</span><span class="special">,</span> <span class="special">...)</span>         <span class="comment">// Arguments to group, i.e. to start subrule srA
 </span></pre>
 <a name="spirit_repository.karma_components.nonterminal.subrule.parameters__usage_"></a><h6>
-<a name="id902605"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.parameters__usage_-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.parameters__usage_">Parameters
           (usage)</a>
         </h6>
@@ -323,7 +323,7 @@
 </tbody>
 </table></div>
 <a name="spirit_repository.karma_components.nonterminal.subrule.groups"></a><h6>
-<a name="id902931"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.groups-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.groups">Groups</a>
         </h6>
 <p>
@@ -368,7 +368,7 @@
 </span><span class="special">;</span>
 </pre>
 <a name="spirit_repository.karma_components.nonterminal.subrule.attributes"></a><h6>
-<a name="id903325"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.attributes-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.attributes">Attributes</a>
         </h6>
 <p>
@@ -397,7 +397,7 @@
             </li>
 </ul></div>
 <a name="spirit_repository.karma_components.nonterminal.subrule.locals"></a><h6>
-<a name="id903412"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.locals-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.locals">Locals</a>
         </h6>
 <p>
@@ -407,7 +407,7 @@
           refer to the subrule's locals, if present.
         </p>
 <a name="spirit_repository.karma_components.nonterminal.subrule.example"></a><h6>
-<a name="id903448"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.example-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.example">Example</a>
         </h6>
 <p>
@@ -473,7 +473,7 @@
           <a href="../../../../../example/karma/mini_xml_karma_sr.cpp" target="_top">../../example/karma/mini_xml_karma_sr.cpp</a>
         </p>
 <a name="spirit_repository.karma_components.nonterminal.subrule.performance"></a><h6>
-<a name="id904333"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.performance-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.performance">Performance</a>
         </h6>
 <p>
@@ -484,7 +484,7 @@
           subrules is very similar, so performance is very similar too).
         </p>
 <a name="spirit_repository.karma_components.nonterminal.subrule.notes"></a><h6>
-<a name="id904370"></a>
+<a name="spirit_repository.karma_components.nonterminal.subrule.notes-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.karma_components.nonterminal.subrule.notes">Notes</a>
         </h6>
 <p>
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	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -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="id863183"></a>
+<a name="spirit_repository.preface.the_spirit_repository-heading"></a>
       <a class="link" href="preface.html#spirit_repository.preface.the_spirit_repository">The Spirit
       Repository</a>
     </h4>
@@ -73,11 +73,11 @@
     </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>
+      time to move repository components/grammars into the <span class="emphasis"><em>Spirit</em></span>
       core library.
     </p>
 <a name="spirit_repository.preface.how_to_use_this_manual"></a><h4>
-<a name="id863271"></a>
+<a name="spirit_repository.preface.how_to_use_this_manual-heading"></a>
       <a class="link" href="preface.html#spirit_repository.preface.how_to_use_this_manual">How to use
       this manual</a>
     </h4>
@@ -86,7 +86,7 @@
       icons precede some text to indicate:
     </p>
 <div class="table">
-<a name="id863285"></a><p class="title"><b>Table 1. Icons</b></p>
+<a name="id820945"></a><p class="title"><b>Table 1. Icons</b></p>
 <div class="table-contents"><table class="table" summary="Icons">
 <colgroup>
 <col>
@@ -208,7 +208,7 @@
       Tools</a>.
     </p>
 <a name="spirit_repository.preface.support"></a><h4>
-<a name="id863540"></a>
+<a name="spirit_repository.preface.support-heading"></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	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -28,7 +28,7 @@
         Confix Parser Directive</a>
 </h4></div></div></div>
 <a name="spirit_repository.qi_components.directives.confix.description"></a><h6>
-<a name="id876299"></a>
+<a name="spirit_repository.qi_components.directives.confix.description-heading"></a>
           <a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.description">Description</a>
         </h6>
 <p>
@@ -95,20 +95,20 @@
           </p></td></tr>
 </table></div>
 <a name="spirit_repository.qi_components.directives.confix.header"></a><h6>
-<a name="id878160"></a>
+<a name="spirit_repository.qi_components.directives.confix.header-heading"></a>
           <a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to <boost/spirit/repository/home/qi/directive/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">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="id878238"></a>
+<a name="spirit_repository.qi_components.directives.confix.synopsis-heading"></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="id878291"></a>
+<a name="spirit_repository.qi_components.directives.confix.parameters-heading"></a>
           <a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.parameters">Parameters</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -172,7 +172,7 @@
           All three parameters can be arbitrarily complex parsers themselves.
         </p>
 <a name="spirit_repository.qi_components.directives.confix.attribute"></a><h6>
-<a name="id878437"></a>
+<a name="spirit_repository.qi_components.directives.confix.attribute-heading"></a>
           <a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.attribute">Attribute</a>
         </h6>
 <p>
@@ -198,7 +198,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit_repository.qi_components.directives.confix.example"></a><h6>
-<a name="id878675"></a>
+<a name="spirit_repository.qi_components.directives.confix.example-heading"></a>
           <a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.example">Example</a>
         </h6>
 <p>
@@ -208,7 +208,7 @@
           see confix.cpp)
         </p>
 <a name="spirit_repository.qi_components.directives.confix.prerequisites"></a><h6>
-<a name="id878710"></a>
+<a name="spirit_repository.qi_components.directives.confix.prerequisites-heading"></a>
           <a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -243,7 +243,7 @@
 <p>
         </p>
 <a name="spirit_repository.qi_components.directives.confix.parsing_different_comment_styles"></a><h6>
-<a name="id879120"></a>
+<a name="spirit_repository.qi_components.directives.confix.parsing_different_comment_styles-heading"></a>
           <a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.parsing_different_comment_styles">Parsing
           Different Comment Styles</a>
         </h6>
@@ -295,7 +295,7 @@
           This is a comment */</span> </code>".
         </p>
 <a name="spirit_repository.qi_components.directives.confix.parsing_tagged_data"></a><h6>
-<a name="id879691"></a>
+<a name="spirit_repository.qi_components.directives.confix.parsing_tagged_data-heading"></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	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -28,7 +28,7 @@
         Distinct Parser Directive</a>
 </h4></div></div></div>
 <a name="spirit_repository.qi_components.directives.distinct.description"></a><h6>
-<a name="id880040"></a>
+<a name="spirit_repository.qi_components.directives.distinct.description-heading"></a>
           <a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.description">Description</a>
         </h6>
 <p>
@@ -140,20 +140,20 @@
           above.
         </p>
 <a name="spirit_repository.qi_components.directives.distinct.header"></a><h6>
-<a name="id881275"></a>
+<a name="spirit_repository.qi_components.directives.distinct.header-heading"></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/directive/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="id881353"></a>
+<a name="spirit_repository.qi_components.directives.distinct.synopsis-heading"></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="id881397"></a>
+<a name="spirit_repository.qi_components.directives.distinct.parameters-heading"></a>
           <a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.parameters">Parameters</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -206,7 +206,7 @@
           All two parameters can be arbitrary complex parsers themselves.
         </p>
 <a name="spirit_repository.qi_components.directives.distinct.attribute"></a><h6>
-<a name="id881504"></a>
+<a name="spirit_repository.qi_components.directives.distinct.attribute-heading"></a>
           <a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.attribute">Attribute</a>
         </h6>
 <p>
@@ -220,7 +220,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="id881621"></a>
+<a name="spirit_repository.qi_components.directives.distinct.example-heading"></a>
           <a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.example">Example</a>
         </h6>
 <p>
@@ -228,7 +228,7 @@
           parser. distinct.cpp)
         </p>
 <a name="spirit_repository.qi_components.directives.distinct.prerequisites"></a><h6>
-<a name="id881654"></a>
+<a name="spirit_repository.qi_components.directives.distinct.prerequisites-heading"></a>
           <a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -257,7 +257,7 @@
 <p>
         </p>
 <a name="spirit_repository.qi_components.directives.distinct.using_the_distinct_directive_to_match_keywords"></a><h6>
-<a name="id881890"></a>
+<a name="spirit_repository.qi_components.directives.distinct.using_the_distinct_directive_to_match_keywords-heading"></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>
Added: trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/kwd.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/kwd.html	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -0,0 +1,371 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Qi Keyword Parser Directive</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit Repository 0.2">
+<link rel="up" href="../directives.html" title="Qi Parser Directives">
+<link rel="prev" href="distinct.html" title="Qi Distinct Parser Directive">
+<link rel="next" href="../nonterminal.html" title="Qi Parser Non-terminals">
+</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="distinct.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directives.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../nonterminal.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit_repository.qi_components.directives.kwd"></a><a class="link" href="kwd.html" title="Qi Keyword Parser Directive">Qi
+        Keyword Parser Directive </a>
+</h4></div></div></div>
+<a name="spirit_repository.qi_components.directives.kwd.description"></a><h6>
+<a name="spirit_repository.qi_components.directives.kwd.description-heading"></a>
+          <a class="link" href="kwd.html#spirit_repository.qi_components.directives.kwd.description">Description</a>
+        </h6>
+<p>
+          The <code class="computeroutput"><span class="identifier">kwd</span><span class="special">[]</span></code>
+          and <code class="computeroutput"><span class="identifier">ikwd</span><span class="special">[]</span></code>
+          provide a powerful and flexible mechanism for parsing keyword based input.
+          It works in conjuction with the / operator to create an effective keyword
+          parsing loop. The keyword parsing loop doesn't require the keywords to
+          appear in a defined order in the input but also provides the possibility
+          to check how many times a keyword appears in the input.
+        </p>
+<p>
+          The kwd directive will parse the keywords respecting case sensitivity whereas
+          the ikwd direcive is case insensitive. You can mix the kwd and ikwd directives
+          inside a set of keywords, but be aware that this has a small overhead.
+          It should be prefered not to mix the kwd and ikwd directives.
+        </p>
+<p>
+          The kwd directive is very similar to the repeat directive in that it enables
+          to enforce keyword occurence constraints but also provides very interesting
+          speed improvement over the pure EBNF syntax or the Nabialek-Trick.
+        </p>
+<a name="spirit_repository.qi_components.directives.kwd.header"></a><h6>
+<a name="spirit_repository.qi_components.directives.kwd.header-heading"></a>
+          <a class="link" href="kwd.html#spirit_repository.qi_components.directives.kwd.header">Header</a>
+        </h6>
+<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/repository/home/qi/directive/kwd.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_kwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<a name="spirit_repository.qi_components.directives.kwd.synopsis"></a><h6>
+<a name="spirit_repository.qi_components.directives.kwd.synopsis-heading"></a>
+          <a class="link" href="kwd.html#spirit_repository.qi_components.directives.kwd.synopsis">Synopsis</a>
+        </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="identifier">keyword</span><span class="special">)[</span><span class="identifier">subject</span><span class="special">]</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Parse ( <code class="computeroutput"><span class="string">"keyword"</span></code>
+                    > <code class="computeroutput"><span class="identifier">subject</span></code>)
+                    zero or more times.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="identifier">keyword</span><span class="special">,</span><span class="identifier">n</span><span class="special">)[</span><span class="identifier">subject</span><span class="special">]</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Parse ( <code class="computeroutput"><span class="string">"keyword"</span></code>
+                    > <code class="computeroutput"><span class="identifier">subject</span></code>)
+                    exactly <code class="computeroutput"><span class="identifier">n</span></code> times.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="identifier">keyword</span><span class="special">,</span><span class="identifier">min</span><span class="special">,</span>
+                    <span class="identifier">max</span><span class="special">)[</span><span class="identifier">subject</span><span class="special">]</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Parse ( <code class="computeroutput"><span class="string">"keyword"</span></code>
+                    > <code class="computeroutput"><span class="identifier">subject</span></code>)
+                    at least <code class="computeroutput"><span class="identifier">min</span></code>
+                    times and at most <code class="computeroutput"><span class="identifier">max</span></code>
+                    times.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="identifier">keyword</span><span class="special">,</span><span class="identifier">min</span><span class="special">,</span>
+                    <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">subject</span><span class="special">]</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Parse ( <code class="computeroutput"><span class="string">"keyword"</span></code>
+                    > <code class="computeroutput"><span class="identifier">subject</span></code>)
+                    at least <code class="computeroutput"><span class="identifier">min</span></code>
+                    or more.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          For non case sensitive keywords use the ikwd directive.
+        </p>
+<a name="spirit_repository.qi_components.directives.kwd.parameters"></a><h6>
+<a name="spirit_repository.qi_components.directives.kwd.parameters-heading"></a>
+          <a class="link" href="kwd.html#spirit_repository.qi_components.directives.kwd.parameters">Parameters</a>
+        </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">keyword</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The parser for the opening (the prefix).
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">subject</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The parser for the input sequence following the keyword part.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">n</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Int representing the exact number of times the keyword must be
+                    repeated.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">min</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Int representing the minimum number of times the keyword must
+                    be repeated.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">max</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Int representing the maximum number of times the keyword must
+                    be repeated.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          All three parameters can be arbitrarily complex parsers themselves.
+        </p>
+<a name="spirit_repository.qi_components.directives.kwd.attributes"></a><h6>
+<a name="spirit_repository.qi_components.directives.kwd.attributes-heading"></a>
+          <a class="link" href="kwd.html#spirit_repository.qi_components.directives.kwd.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>
+                    <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">)[</span><span class="identifier">a</span><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">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="keyword">or</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">Unused</span> <span class="special">--></span> <span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
+<p>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">,</span><span class="identifier">n</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</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">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">,</span><span class="identifier">n</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="keyword">or</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">Unused</span> <span class="special">--></span> <span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">,</span><span class="identifier">n</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
+<p>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">,</span><span class="identifier">min</span><span class="special">,</span>
+                    <span class="identifier">max</span><span class="special">)[</span><span class="identifier">a</span><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">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">,</span><span class="identifier">min</span><span class="special">,</span> <span class="identifier">max</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="keyword">or</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">Unused</span> <span class="special">--></span> <span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">,</span><span class="identifier">min</span><span class="special">,</span> <span class="identifier">max</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
+<p>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">,</span><span class="identifier">min</span><span class="special">,</span>
+                    <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</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">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">,</span><span class="identifier">min</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="keyword">or</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">Unused</span> <span class="special">--></span> <span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">,</span><span class="identifier">min</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
+<p>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit_repository.qi_components.directives.kwd.complexity"></a><h6>
+<a name="spirit_repository.qi_components.directives.kwd.complexity-heading"></a>
+          <a class="link" href="kwd.html#spirit_repository.qi_components.directives.kwd.complexity">Complexity</a>
+        </h6>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+            The overall complexity is defined by the complexity of its subject parser.
+            The complexity of the keyword list construct <code class="computeroutput"><span class="identifier">kwd</span></code>
+            itself is O(N), where N is the number of repetitions executed.
+          </p>
+<p>
+            The complexity of the keyword list itself determined by the complexity
+            of the internal TST contents :
+          </p>
+<p>
+            O(log n+k)
+          </p>
+<p>
+            Where k is the length of the string to be searched in a TST with n strings.
+          </p>
+</blockquote></div>
+<a name="spirit_repository.qi_components.directives.kwd.example"></a><h6>
+<a name="spirit_repository.qi_components.directives.kwd.example-heading"></a>
+          <a class="link" href="kwd.html#spirit_repository.qi_components.directives.kwd.example">Example</a>
+        </h6>
+<p>
+          Please refer to keyword_list.
+        </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-2011 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="distinct.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directives.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../nonterminal.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/nonterminal/subrule.html
==============================================================================
--- trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/nonterminal/subrule.html	(original)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/nonterminal/subrule.html	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -28,7 +28,7 @@
         subrules</a>
 </h4></div></div></div>
 <a name="spirit_repository.qi_components.nonterminal.subrule.description"></a><h6>
-<a name="id890393"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.description-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.description">Description</a>
         </h6>
 <p>
@@ -97,21 +97,21 @@
           most performance-critical parts), whereas the rest can use rules and grammars.
         </p>
 <a name="spirit_repository.qi_components.nonterminal.subrule.header"></a><h6>
-<a name="id891331"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.header-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to <boost/spirit/repository/home/qi/nonterminal/subrule.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_subrule</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
 </pre>
 <a name="spirit_repository.qi_components.nonterminal.subrule.synopsis__declaration_"></a><h6>
-<a name="id891406"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.synopsis__declaration_-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.synopsis__declaration_">Synopsis
           (declaration)</a>
         </h6>
 <pre class="programlisting"><span class="identifier">subrule</span><span class="special"><</span><span class="identifier">ID</span><span class="special">,</span> <span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A2</span><span class="special">></span> <span class="identifier">sr</span><span class="special">(</span><span class="identifier">name</span><span class="special">);</span>
 </pre>
 <a name="spirit_repository.qi_components.nonterminal.subrule.parameters__declaration_"></a><h6>
-<a name="id891471"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.parameters__declaration_-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.parameters__declaration_">Parameters
           (declaration)</a>
         </h6>
@@ -181,7 +181,7 @@
 </tbody>
 </table></div>
 <a name="spirit_repository.qi_components.nonterminal.subrule.synopsis__usage_"></a><h6>
-<a name="id891606"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.synopsis__usage_-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.synopsis__usage_">Synopsis
           (usage)</a>
         </h6>
@@ -210,7 +210,7 @@
 <span class="special">)(</span><span class="identifier">a1</span><span class="special">,</span> <span class="identifier">a2</span><span class="special">,</span> <span class="special">...)</span>         <span class="comment">// Arguments to group, i.e. to start subrule srA
 </span></pre>
 <a name="spirit_repository.qi_components.nonterminal.subrule.parameters__usage_"></a><h6>
-<a name="id891841"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.parameters__usage_-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.parameters__usage_">Parameters
           (usage)</a>
         </h6>
@@ -334,7 +334,7 @@
 </tbody>
 </table></div>
 <a name="spirit_repository.qi_components.nonterminal.subrule.groups"></a><h6>
-<a name="id892166"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.groups-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.groups">Groups</a>
         </h6>
 <p>
@@ -379,7 +379,7 @@
 </span><span class="special">;</span>
 </pre>
 <a name="spirit_repository.qi_components.nonterminal.subrule.attributes"></a><h6>
-<a name="id892567"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.attributes-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.attributes">Attributes</a>
         </h6>
 <p>
@@ -408,7 +408,7 @@
             </li>
 </ul></div>
 <a name="spirit_repository.qi_components.nonterminal.subrule.locals"></a><h6>
-<a name="id892657"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.locals-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.locals">Locals</a>
         </h6>
 <p>
@@ -418,7 +418,7 @@
           refer to the subrule's locals, if present.
         </p>
 <a name="spirit_repository.qi_components.nonterminal.subrule.example"></a><h6>
-<a name="id892693"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.example-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.example">Example</a>
         </h6>
 <p>
@@ -506,7 +506,7 @@
           <a href="../../../../../example/qi/mini_xml2_sr.cpp" target="_top">../../example/qi/mini_xml2_sr.cpp</a>
         </p>
 <a name="spirit_repository.qi_components.nonterminal.subrule.performance"></a><h6>
-<a name="id895182"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.performance-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.performance">Performance</a>
         </h6>
 <p>
@@ -514,7 +514,7 @@
           examples to subrules, with various compilers.
         </p>
 <div class="table">
-<a name="id895198"></a><p class="title"><b>Table 2. Subrules performance</b></p>
+<a name="id840665"></a><p class="title"><b>Table 2. Subrules performance</b></p>
 <div class="table-contents"><table class="table" summary="Subrules performance">
 <colgroup>
 <col>
@@ -761,7 +761,7 @@
             </li>
 </ul></div>
 <a name="spirit_repository.qi_components.nonterminal.subrule.notes"></a><h6>
-<a name="id895590"></a>
+<a name="spirit_repository.qi_components.nonterminal.subrule.notes-heading"></a>
           <a class="link" href="subrule.html#spirit_repository.qi_components.nonterminal.subrule.notes">Notes</a>
         </h6>
 <p>
Added: trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/operators.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/operators.html	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -0,0 +1,46 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Qi Parser Operators</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit Repository 0.2">
+<link rel="up" href="../qi_components.html" title="Qi Components">
+<link rel="prev" href="nonterminal/subrule.html" title="Qi subrules">
+<link rel="next" href="operators/keyword_list.html" title="Keyword List 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="nonterminal/subrule.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_components.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="operators/keyword_list.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="spirit_repository.qi_components.operators"></a><a class="link" href="operators.html" title="Qi Parser Operators">Qi Parser
+      Operators</a>
+</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="operators/keyword_list.html">Keyword
+        List Operator</a></span></dt></dl></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2011 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="nonterminal/subrule.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_components.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="operators/keyword_list.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/operators/keyword_list.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/operators/keyword_list.html	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -0,0 +1,368 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Keyword List Operator</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit Repository 0.2">
+<link rel="up" href="../operators.html" title="Qi Parser Operators">
+<link rel="prev" href="../operators.html" title="Qi Parser Operators">
+<link rel="next" href="../../karma_components.html" title="Karma Components">
+</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="../operators.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operators.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../karma_components.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit_repository.qi_components.operators.keyword_list"></a><a class="link" href="keyword_list.html" title="Keyword List Operator">Keyword
+        List Operator</a>
+</h4></div></div></div>
+<a name="spirit_repository.qi_components.operators.keyword_list.description"></a><h6>
+<a name="spirit_repository.qi_components.operators.keyword_list.description-heading"></a>
+          <a class="link" href="keyword_list.html#spirit_repository.qi_components.operators.keyword_list.description">Description</a>
+        </h6>
+<p>
+          The keyword list operator, <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="string">"k1"</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span>
+          <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="string">"k2"</span><span class="special">)[</span><span class="identifier">b</span><span class="special">]</span></code>,
+          works tightly with the kwd, ikwd directives to effeciently match keyword
+          lists. As long as one of the keywords specified through the kwd or ikwd
+          directive matches, the keyword will be immediatly followed by the the keyword's
+          associated subject parser. The parser will continue parsing input as long
+          as the one of the keywords and it's associated parser succeed. Writing
+          : (kwd("k1")[a] / kwd("k2")[b] / ... ) is equivalent
+          to: *( "k1" > a | "k2" > b ... ).
+        </p>
+<a name="spirit_repository.qi_components.operators.keyword_list.header"></a><h6>
+<a name="spirit_repository.qi_components.operators.keyword_list.header-heading"></a>
+          <a class="link" href="keyword_list.html#spirit_repository.qi_components.operators.keyword_list.header">Header</a>
+        </h6>
+<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/repository/home/qi/operator/keywords.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_keywords</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<a name="spirit_repository.qi_components.operators.keyword_list.expression_semantics"></a><h6>
+<a name="spirit_repository.qi_components.operators.keyword_list.expression_semantics-heading"></a>
+          <a class="link" href="keyword_list.html#spirit_repository.qi_components.operators.keyword_list.expression_semantics">Expression
+          Semantics</a>
+        </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span>
+                    <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k2</span><span class="special">)[</span><span class="identifier">b</span><span class="special">]</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Match <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">k1</span><span class="special">)</span>
+                    <span class="special">></span> <span class="identifier">a</span></code>
+                    or <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">k2</span><span class="special">)</span>
+                    <span class="special">></span> <span class="identifier">b</span></code>,
+                    equivalent to <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">k1</span><span class="special">)</span> <span class="special">></span>
+                    <span class="identifier">a</span> <span class="special">|</span>
+                    <span class="identifier">lit</span><span class="special">(</span><span class="identifier">k2</span><span class="special">)</span>
+                    <span class="special">></span> <span class="identifier">b</span></code>
+                  </p>
+                </td>
+</tr></tbody>
+</table></div>
+<a name="spirit_repository.qi_components.operators.keyword_list.attributes"></a><h6>
+<a name="spirit_repository.qi_components.operators.keyword_list.attributes-heading"></a>
+          <a class="link" href="keyword_list.html#spirit_repository.qi_components.operators.keyword_list.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>
+                    <code class="computeroutput"><span class="identifier">kwd</span><span class="special">(</span><span class="string">"k1"</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span>
+                    <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="string">"k2"</span><span class="special">)[</span><span class="identifier">b</span><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">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span> <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k2</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">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span> <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k2</span><span class="special">)[</span><span class="identifier">b</span><span class="special">]):</span> <span class="identifier">optional</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">kwd</span><span class="special">(</span><span class="string">"k1"</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span> <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k2</span><span class="special">)[</span><span class="identifier">b</span><span class="special">]):</span> <span class="identifier">optional</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">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">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span> <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k2</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="identifier">kwd</span><span class="special">(</span><span class="identifier">k1</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span> <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="identifier">k2</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">A</span><span class="special">></span></pre>
+<p>
+                  </p>
+                </td>
+</tr></tbody>
+</table></div>
+<div class="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 keyword list parser works tightly with the kwd and ikwd directives
+            and can't be used without it. A compile time error will warn you of any
+            mistakes. This parser collects all the kwd directives and extracts the
+            keyword literals from the directives to internaly build a Ternary Search
+            Tree (TST) to effectively parse the keywords. Because you we can't mix
+            character types inside a TST you must take care not to mix wide strings
+            with normal strings in the keyword you supply to a keyword list. Should
+            it happen the compiler will trap the mistake for you.
+          </p></td></tr>
+</table></div>
+<div class="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 kwd directive also works a bit like the repeat directive and can
+            be used to formulate additional contraints on the number of times a keyword
+            can occur while parsing a keyword list.
+          </p></td></tr>
+</table></div>
+<div class="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 kwd and ikwd directives can be mixed inside a keyword list. This
+            has however a small overhead and should be avoided when possible.
+          </p></td></tr>
+</table></div>
+<a name="spirit_repository.qi_components.operators.keyword_list.complexity"></a><h6>
+<a name="spirit_repository.qi_components.operators.keyword_list.complexity-heading"></a>
+          <a class="link" href="keyword_list.html#spirit_repository.qi_components.operators.keyword_list.complexity">Complexity</a>
+        </h6>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+            The overall complexity of the keyword list parser is defined by the sum
+            of the complexities of its elements. The complexity of the keyword list
+            itself is determined by the complexity of the internal TST contents :
+          </p>
+<p>
+            O(log n+k)
+          </p>
+<p>
+            Where k is the length of the string to be searched in a TST with n strings.
+          </p>
+</blockquote></div>
+<a name="spirit_repository.qi_components.operators.keyword_list.example"></a><h6>
+<a name="spirit_repository.qi_components.operators.keyword_list.example-heading"></a>
+          <a class="link" href="keyword_list.html#spirit_repository.qi_components.operators.keyword_list.example">Example</a>
+        </h6>
+<div class="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 test harness for the example(s) below is presented in the <span class="underline">_qi_basics_examples_</span> section.
+          </p></td></tr>
+</table></div>
+<p>
+          Declare a small data structure representing a person:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="comment">// Data structure definitions to test the kwd directive
+</span><span class="comment">// and the keywords list operator
+</span>
+<span class="keyword">struct</span> <span class="identifier">person</span> <span class="special">{</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">name</span><span class="special">;</span>
+    <span class="keyword">int</span> <span class="identifier">age</span><span class="special">;</span>
+    <span class="keyword">double</span> <span class="identifier">size</span><span class="special">;</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</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">favorite_colors</span><span class="special">;</span>
+   
+<span class="special">};</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&</span><span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&</span><span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">person</span> <span class="special">&</span><span class="identifier">p</span><span class="special">)</span>
+<span class="special">{</span>
+    <span class="identifier">os</span><span class="special"><<</span><span class="string">"Person : "</span><span class="special"><<</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">name</span><span class="special"><<</span><span class="string">", "</span><span class="special"><<</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">age</span><span class="special"><<</span><span class="string">", "</span><span class="special"><<</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">size</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="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">favorite_colors</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">favorite_colors</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_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">os</span><span class="special">,</span><span class="string">"\n"</span><span class="special">));</span>
+    <span class="keyword">return</span> <span class="identifier">os</span><span class="special">;</span>
+<span class="special">}</span> 
+
+<span class="identifier">BOOST_FUSION_ADAPT_STRUCT</span><span class="special">(</span> <span class="identifier">person</span><span class="special">,</span>
+    <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span><span class="special">)</span>
+    <span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">age</span><span class="special">)</span>
+    <span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">size</span><span class="special">)</span>
+    <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>,</span> <span class="identifier">favorite_colors</span><span class="special">)</span>
+<span class="special">)</span>
+</pre>
+<p>
+        </p>
+<p>
+          Some using declarations:
+        </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">repository</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">kwd</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">inf</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">;</span> 
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">char_</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">int_</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">;</span>
+</pre>
+<p>
+        </p>
+<p>
+          Now let's declare a keyword parser:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">no_constraint_person_rule</span> <span class="special">%=</span> 
+    <span class="identifier">kwd</span><span class="special">(</span><span class="string">"name"</span><span class="special">)[</span><span class="char">'='</span> <span class="special">></span> <span class="identifier">parse_string</span> <span class="special">]</span> 
+  <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="string">"age"</span><span class="special">)</span>   <span class="special">[</span><span class="char">'='</span> <span class="special">></span> <span class="identifier">int_</span><span class="special">]</span> 
+  <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="string">"size"</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> <span class="char">'m'</span><span class="special">]</span>
+  <span class="special">;</span>
+</pre>
+<p>
+        </p>
+<p>
+          A couple of input string variations run on the same parser:
+        </p>
+<p>
+          Parsing a keyword list:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="comment">// Let's declare a small list of people for which we want to collect information.
+</span><span class="identifier">person</span> <span class="identifier">John</span><span class="special">,</span><span class="identifier">Mary</span><span class="special">,</span><span class="identifier">Mike</span><span class="special">,</span><span class="identifier">Hellen</span><span class="special">,</span><span class="identifier">Johny</span><span class="special">;</span>
+<span class="identifier">test_phrase_parser_attr</span><span class="special">(</span>
+                <span class="string">"name = \"John\" \n age = 10 \n size = 1.69m "</span>
+                <span class="special">,</span><span class="identifier">no_constraint_person_rule</span> 
+                <span class="special">,</span><span class="identifier">John</span><span class="special">);</span>  <span class="comment">// full in orginal order
+</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"><<</span><span class="identifier">John</span><span class="special">;</span>
+
+<span class="identifier">test_phrase_parser_attr</span><span class="special">(</span>
+                <span class="string">"age = 10 \n size = 1.69m \n name = \"Mary\""</span>
+                <span class="special">,</span><span class="identifier">no_constraint_person_rule</span> 
+                <span class="special">,</span><span class="identifier">Mary</span><span class="special">);</span>  <span class="comment">// keyword oder doesn't matter
+</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"><<</span><span class="identifier">Mary</span><span class="special">;</span>
+
+<span class="identifier">test_phrase_parser_attr</span><span class="special">(</span>
+                 <span class="string">"size = 1.69m \n name = \"Mike\" \n age = 10 "</span>
+                <span class="special">,</span><span class="identifier">no_constraint_person_rule</span>
+                <span class="special">,</span><span class="identifier">Mike</span><span class="special">);</span>  <span class="comment">// still the same result
+</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"><<</span><span class="identifier">Mike</span><span class="special">;</span></pre>
+<p>
+        </p>
+<p>
+          The code above will print:
+        </p>
+<pre class="programlisting">Person : John, 10, 1.69
+Person : Mary, 10, 1.69
+Person : Mike, 10, 1.69
+</pre>
+<p>
+          Now let's delcare a parser with some occurence constraints:
+        </p>
+<p>
+          The parser definition below uses the kwd directive occurence constraint
+          variants to make sure that the name and age keyword occur only once and
+          allows the favorite color entry to appear 0 or more times.
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">constraint_person_rule</span> <span class="special">%=</span>
+    <span class="identifier">kwd</span><span class="special">(</span><span class="string">"name"</span><span class="special">,</span><span class="number">1</span><span class="special">)</span>                 <span class="special">[</span><span class="char">'='</span> <span class="special">></span> <span class="identifier">parse_string</span> <span class="special">]</span>
+  <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="string">"age"</span>   <span class="special">,</span><span class="number">1</span><span class="special">)</span>                 <span class="special">[</span><span class="char">'='</span> <span class="special">></span> <span class="identifier">int_</span><span class="special">]</span>
+  <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="string">"size"</span>   <span class="special">,</span><span class="number">1</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> <span class="char">'m'</span><span class="special">]</span>
+  <span class="special">/</span> <span class="identifier">kwd</span><span class="special">(</span><span class="string">"favorite color"</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="identifier">inf</span><span class="special">)</span> <span class="special">[</span> <span class="char">'='</span> <span class="special">></span> <span class="identifier">parse_string</span> <span class="special">]</span>
+  <span class="special">;</span>
+</pre>
+<p>
+        </p>
+<p>
+          And see how it works in these two cases:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"> <span class="comment">// Here all the give constraint are resepected : parsing will succeed.
+</span> <span class="identifier">test_phrase_parser_attr</span><span class="special">(</span>
+     <span class="string">"name = \"Hellen\" \n age = 10 \n size = 1.80m \n favorite color = \"blue\" \n favorite color = \"green\" "</span>
+     <span class="special">,</span><span class="identifier">constraint_person_rule</span> 
+     <span class="special">,</span><span class="identifier">Hellen</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="identifier">Hellen</span><span class="special">;</span>
+ 
+<span class="comment">// Parsing this string will fail because the age and size minimum occurence requirements aren't met.
+</span><span class="identifier">test_phrase_parser_attr</span><span class="special">(</span>
+     <span class="string">"name = \"Johny\"  \n favorite color = \"blue\" \n favorite color = \"green\" "</span>
+     <span class="special">,</span><span class="identifier">constraint_person_rule</span>
+     <span class="special">,</span><span class="identifier">Johny</span> <span class="special">);</span></pre>
+<p>
+        </p>
+<p>
+          Parsing the first string will succeed but fail for the second string as
+          the occurence constraints aren't met. This code should print:
+        </p>
+<pre class="programlisting">Person : Hellen, 10, 1.8
+blue
+green
+</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-2011 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="../operators.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operators.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../karma_components.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive/advance.html
==============================================================================
--- trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive/advance.html	(original)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive/advance.html	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -28,7 +28,7 @@
         advance Parser</a>
 </h4></div></div></div>
 <a name="spirit_repository.qi_components.primitive.advance.description"></a><h6>
-<a name="id863615"></a>
+<a name="spirit_repository.qi_components.primitive.advance.description-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.description">Description</a>
         </h6>
 <p>
@@ -66,20 +66,20 @@
 <pre class="programlisting"><span class="identifier">little_dword</span><span class="special">[</span><span class="identifier">_a</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">]</span> <span class="special">>></span> <span class="identifier">advance</span><span class="special">(</span><span class="identifier">_a</span><span class="special">)</span> <span class="special">>></span> <span class="identifier">little_dword</span><span class="special">...</span>
 </pre>
 <a name="spirit_repository.qi_components.primitive.advance.header"></a><h6>
-<a name="id871597"></a>
+<a name="spirit_repository.qi_components.primitive.advance.header-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to <boost/spirit/repository/home/qi/primitive/advance.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_advance</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
 </pre>
 <a name="spirit_repository.qi_components.primitive.advance.synopsis"></a><h6>
-<a name="id871675"></a>
+<a name="spirit_repository.qi_components.primitive.advance.synopsis-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="identifier">advance</span><span class="special">(</span><span class="identifier">distance</span><span class="special">)</span>
 </pre>
 <a name="spirit_repository.qi_components.primitive.advance.parameters"></a><h6>
-<a name="id871712"></a>
+<a name="spirit_repository.qi_components.primitive.advance.parameters-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.parameters">Parameters</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -113,7 +113,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit_repository.qi_components.primitive.advance.attribute"></a><h6>
-<a name="id871783"></a>
+<a name="spirit_repository.qi_components.primitive.advance.attribute-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.attribute">Attribute</a>
         </h6>
 <p>
@@ -123,7 +123,7 @@
 <pre class="programlisting"><span class="identifier">advance</span> <span class="special">--></span> <span class="identifier">unused</span>
 </pre>
 <a name="spirit_repository.qi_components.primitive.advance.example"></a><h6>
-<a name="id871837"></a>
+<a name="spirit_repository.qi_components.primitive.advance.example-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.example">Example</a>
         </h6>
 <p>
@@ -132,7 +132,7 @@
           binary data (for the full example code see advance.cpp)
         </p>
 <a name="spirit_repository.qi_components.primitive.advance.prerequisites"></a><h6>
-<a name="id871872"></a>
+<a name="spirit_repository.qi_components.primitive.advance.prerequisites-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -162,7 +162,7 @@
 <p>
         </p>
 <a name="spirit_repository.qi_components.primitive.advance.setting_up_the_grammar"></a><h6>
-<a name="id872143"></a>
+<a name="spirit_repository.qi_components.primitive.advance.setting_up_the_grammar-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.setting_up_the_grammar">Setting
           up the Grammar</a>
         </h6>
@@ -206,7 +206,7 @@
           descend into alternatives.
         </p>
 <a name="spirit_repository.qi_components.primitive.advance.parsing_a_correctly_delimited_string_of_data"></a><h6>
-<a name="id872598"></a>
+<a name="spirit_repository.qi_components.primitive.advance.parsing_a_correctly_delimited_string_of_data-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.parsing_a_correctly_delimited_string_of_data">Parsing
           a Correctly-delimited String of Data</a>
         </h6>
@@ -245,7 +245,7 @@
 <p>
         </p>
 <a name="spirit_repository.qi_components.primitive.advance.parsing_the_alternative_representation"></a><h6>
-<a name="id873282"></a>
+<a name="spirit_repository.qi_components.primitive.advance.parsing_the_alternative_representation-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.parsing_the_alternative_representation">Parsing
           the Alternative Representation</a>
         </h6>
@@ -284,7 +284,7 @@
 <p>
         </p>
 <a name="spirit_repository.qi_components.primitive.advance.notes"></a><h6>
-<a name="id875038"></a>
+<a name="spirit_repository.qi_components.primitive.advance.notes-heading"></a>
           <a class="link" href="advance.html#spirit_repository.qi_components.primitive.advance.notes">Notes</a>
         </h6>
 <p>
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	2011-04-15 19:36:47 EDT (Fri, 15 Apr 2011)
@@ -28,7 +28,7 @@
         flush_multi_pass parser</a>
 </h4></div></div></div>
 <a name="spirit_repository.qi_components.primitive.flush_multi_pass.description"></a><h6>
-<a name="id875078"></a>
+<a name="spirit_repository.qi_components.primitive.flush_multi_pass.description-heading"></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="id875186"></a>
+<a name="spirit_repository.qi_components.primitive.flush_multi_pass.header-heading"></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/primitive/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="id875259"></a>
+<a name="spirit_repository.qi_components.primitive.flush_multi_pass.synopsis-heading"></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="id875280"></a>
+<a name="spirit_repository.qi_components.primitive.flush_multi_pass.parameters-heading"></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="id875304"></a>
+<a name="spirit_repository.qi_components.primitive.flush_multi_pass.attribute-heading"></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="id875354"></a>
+<a name="spirit_repository.qi_components.primitive.flush_multi_pass.example-heading"></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="id875386"></a>
+<a name="spirit_repository.qi_components.primitive.flush_multi_pass.prerequisites-heading"></a>
           <a class="link" href="flush_multi_pass.html#spirit_repository.qi_components.primitive.flush_multi_pass.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -125,7 +125,7 @@
 <p>
         </p>
 <a name="spirit_repository.qi_components.primitive.flush_multi_pass.clearing_the_internal_buffer"></a><h6>
-<a name="id875595"></a>
+<a name="spirit_repository.qi_components.primitive.flush_multi_pass.clearing_the_internal_buffer-heading"></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>