Boost logo

Boost-Commit :

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 &#169; 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">&lt;</span><span class="identifier">ol</span><span class="special">&gt;</span><span class="identifier">Some</span> <span class="identifier">text</span><span class="special">&lt;/</span><span class="identifier">ol</span><span class="special">&gt;</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 &lt;boost/spirit/repository/home/karma/directive/confix.hpp&gt;
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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">&gt;</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 &lt;boost/spirit/repository/home/karma/nonterminal/subrule.hpp&gt;
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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">&gt;</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">&lt;</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">&gt;</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&#160;1.&#160;Icons</b></p>
+<a name="id820945"></a><p class="title"><b>Table&#160;1.&#160;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 &lt;boost/spirit/repository/home/qi/directive/confix.hpp&gt;
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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">&gt;</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 &lt;boost/spirit/repository/home/qi/directive/distinct.hpp&gt;
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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">&gt;</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">--&gt;</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 &lt;boost/spirit/repository/home/qi/directive/kwd.hpp&gt;
+</span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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">&gt;</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>
+ &gt; <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>
+ &gt; <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>
+ &gt; <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>
+ &gt; <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">--&gt;</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">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="keyword">or</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--&gt;</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">--&gt;</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">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="keyword">or</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--&gt;</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">--&gt;</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">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="keyword">or</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--&gt;</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">--&gt;</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">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="keyword">or</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--&gt;</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 &#169; 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 &lt;boost/spirit/repository/home/qi/nonterminal/subrule.hpp&gt;
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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">&gt;</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">&lt;</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">&gt;</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&#160;2.&#160;Subrules performance</b></p>
+<a name="id840665"></a><p class="title"><b>Table&#160;2.&#160;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 &#169; 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" &gt; a | "k2" &gt; 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 &lt;boost/spirit/repository/home/qi/operator/keywords.hpp&gt;
+</span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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">&gt;</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">&gt;</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">&gt;</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">&gt;</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">&gt;</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">--&gt;</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">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</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">--&gt;</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">&lt;</span><span class="identifier">A</span><span class="special">&gt;</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">--&gt;</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">&lt;</span><span class="identifier">B</span><span class="special">&gt;</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">--&gt;</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">--&gt;(</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">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;</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">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</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">&amp;</span><span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span> <span class="special">&amp;</span><span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">person</span> <span class="special">&amp;</span><span class="identifier">p</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="identifier">os</span><span class="special">&lt;&lt;</span><span class="string">"Person : "</span><span class="special">&lt;&lt;</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">name</span><span class="special">&lt;&lt;</span><span class="string">", "</span><span class="special">&lt;&lt;</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">age</span><span class="special">&lt;&lt;</span><span class="string">", "</span><span class="special">&lt;&lt;</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">size</span><span class="special">&lt;&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="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">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;,</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">&gt;</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">&gt;</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">&gt;</span> <span class="identifier">double_</span> <span class="special">&gt;</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">&lt;&lt;</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">&lt;&lt;</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">&lt;&lt;</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">&gt;</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">&gt;</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">&gt;</span> <span class="identifier">double_</span> <span class="special">&gt;</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">&gt;</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">&lt;&lt;</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 &#169; 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">&gt;&gt;</span> <span class="identifier">advance</span><span class="special">(</span><span class="identifier">_a</span><span class="special">)</span> <span class="special">&gt;&gt;</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 &lt;boost/spirit/repository/home/qi/primitive/advance.hpp&gt;
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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">&gt;</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">--&gt;</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 &lt;boost/spirit/repository/home/qi/primitive/flush_multi_pass.hpp&gt;
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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">&gt;</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">--&gt;</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>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk