Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r53291 - in trunk/libs/spirit: doc doc/lex repository/doc repository/doc/html repository/doc/html/images repository/doc/html/images/callouts repository/doc/html/spirit_repository repository/doc/karma
From: hartmut.kaiser_at_[hidden]
Date: 2009-05-26 19:40:46


Author: hkaiser
Date: 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
New Revision: 53291
URL: http://svn.boost.org/trac/boost/changeset/53291

Log:
Spirit: Documentation changes
Added:
   trunk/libs/spirit/repository/doc/Jamfile (contents, props changed)
   trunk/libs/spirit/repository/doc/html/
   trunk/libs/spirit/repository/doc/html/images/
   trunk/libs/spirit/repository/doc/html/images/alert.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/
   trunk/libs/spirit/repository/doc/html/images/callouts/1.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/10.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/11.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/12.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/13.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/14.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/15.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/2.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/3.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/4.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/5.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/6.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/7.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/8.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/callouts/9.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/caution.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/important.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/note.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/images/tip.png (contents, props changed)
   trunk/libs/spirit/repository/doc/html/index.html (contents, props changed)
   trunk/libs/spirit/repository/doc/html/spirit_repository/
   trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components.html (contents, props changed)
   trunk/libs/spirit/repository/doc/html/spirit_repository/karma_confix_generator.html (contents, props changed)
   trunk/libs/spirit/repository/doc/html/spirit_repository/preface.html (contents, props changed)
   trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components.html (contents, props changed)
   trunk/libs/spirit/repository/doc/karma/
   trunk/libs/spirit/repository/doc/karma.qbk (contents, props changed)
   trunk/libs/spirit/repository/doc/karma/confix.qbk (contents, props changed)
   trunk/libs/spirit/repository/doc/preface.qbk (contents, props changed)
   trunk/libs/spirit/repository/doc/qi.qbk (contents, props changed)
   trunk/libs/spirit/repository/doc/spirit2_repository.qbk (contents, props changed)
Text files modified:
   trunk/libs/spirit/doc/Jamfile | 4 ++--
   trunk/libs/spirit/doc/lex/lexer_static_model.qbk | 4 ++--
   2 files changed, 4 insertions(+), 4 deletions(-)

Modified: trunk/libs/spirit/doc/Jamfile
==============================================================================
--- trunk/libs/spirit/doc/Jamfile (original)
+++ trunk/libs/spirit/doc/Jamfile 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -1,6 +1,6 @@
 #==============================================================================
-# Copyright (c) 2001-2007 Joel de Guzman
-# Copyright (c) 2001-2007 Hartmut Kaiser
+# Copyright (c) 2001-2009 Joel de Guzman
+# Copyright (c) 2001-2009 Hartmut Kaiser
 #
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: trunk/libs/spirit/doc/lex/lexer_static_model.qbk
==============================================================================
--- trunk/libs/spirit/doc/lex/lexer_static_model.qbk (original)
+++ trunk/libs/spirit/doc/lex/lexer_static_model.qbk 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -63,7 +63,7 @@
 __class_lexertl_static_lexer__ type as the template parameter.
 
 This example not only shows how to build a static lexer, but it additionally
-demonstrates, how such a lexer can be used for parsing in conjunction with a
+demonstrates how such a lexer can be used for parsing in conjunction with a
 __qi__ grammar. For completeness we provide the simple grammar used in this
 example. As you can see, this grammar does not have any dependencies on the
 static lexical analyzer, and for this reason it is not different from a grammar
@@ -82,7 +82,7 @@
 implements the whole code generator, no further code is needed. All what it
 takes to invoke this function is to supply a token definition instance, an
 output stream to use to generate the code to, and an optional string to be used
-as a prefix for the name of the generated function. All in all just a couple
+as a suffix for the name of the generated function. All in all just a couple
 lines of code.
 
 [wc_static_generate_main]

Added: trunk/libs/spirit/repository/doc/Jamfile
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/Jamfile 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,28 @@
+#==============================================================================
+# Copyright (c) 2001-2009 Joel de Guzman
+# Copyright (c) 2001-2009 Hartmut Kaiser
+#
+# Use, modification and distribution is subject to 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)
+#==============================================================================
+
+project spirit/repository/doc ;
+
+import boostbook : boostbook ;
+using quickbook : quickbook ;
+
+boostbook spirit2_repository
+ :
+ spirit2_repository.qbk
+ :
+ <xsl:param>boost.root=../../../../..
+ <xsl:param>boost.libraries=../../../../libraries.htm
+ <xsl:param>html.stylesheet=../../../../../doc/html/boostbook.css
+ <xsl:param>chunk.section.depth=1
+ <xsl:param>chunk.first.sections=1
+ <xsl:param>toc.section.depth=3
+ <xsl:param>toc.max.depth=3
+ <xsl:param>generate.section.toc.level=4
+ <xsl:param>admon.graphics.path=images/
+ ;

Added: trunk/libs/spirit/repository/doc/html/images/alert.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/1.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/10.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/11.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/12.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/13.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/14.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/15.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/2.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/3.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/4.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/5.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/6.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/7.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/8.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/callouts/9.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/caution.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/important.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/note.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/images/tip.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/spirit/repository/doc/html/index.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/html/index.html 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,79 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Spirit Repository 0.1</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="index.html" title="Spirit Repository 0.1">
+<link rel="next" href="spirit_repository/preface.html" title="Preface">
+</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="n" href="spirit_repository/preface.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="article" title="Spirit Repository 0.1">
+<div class="titlepage">
+<div>
+<div><h2 class="title">
+<a name="spirit_repository"></a>Spirit Repository 0.1</h2></div>
+<div><div class="authorgroup">
+<div class="author"><h3 class="author">
+<span class="firstname">Joel</span> <span class="surname">de Guzman</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Hartmut</span> <span class="surname">Kaiser</span>
+</h3></div>
+</div></div>
+<div><p class="copyright">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser</p></div>
+<div><div class="legalnotice" title="Legal Notice">
+<a name="id785119"></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>
+</div></div>
+</div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section">Preface</span></dt>
+<dt><span class="section">Karma Components</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="spirit_repository/karma_components.html#spirit_repository.karma_components.karma_generator_primitives">Karma
+ Generator Primitives</a></span></dt>
+<dd><dl><dt><span class="section"><a href="spirit_repository/karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator">Karma
+ Confix Generator</a></span></dt></dl></dd>
+<dt><span class="section"><a href="spirit_repository/karma_components.html#spirit_repository.karma_components.karma_generator_directives">Karma
+ Generator Directives</a></span></dt>
+<dt><span class="section"><a href="spirit_repository/karma_components.html#spirit_repository.karma_components.karma_compound_generators">Karma
+ Compound Generators</a></span></dt>
+</dl></dd>
+<dt><span class="section">Qi Components</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="spirit_repository/qi_components.html#spirit_repository.qi_components.qi_parser_primitives">Qi
+ Parser Primitives</a></span></dt>
+<dt><span class="section"><a href="spirit_repository/qi_components.html#spirit_repository.qi_components.qi_parser_directives">Qi
+ Parser Directives</a></span></dt>
+<dt><span class="section"><a href="spirit_repository/qi_components.html#spirit_repository.qi_components.qi_compound_parsers">Qi
+ Compound Parsers</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><p><small>Last revised: May 26, 2009 at 23:38:37 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="spirit_repository/preface.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a></div>
+</body>
+</html>

Added: trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components.html 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,312 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Karma Components</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit Repository 0.1">
+<link rel="up" href="../index.html" title="Spirit Repository 0.1">
+<link rel="prev" href="preface.html" title="Preface">
+<link rel="next" href="qi_components.html" title="Qi 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="preface.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi_components.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Karma Components">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="spirit_repository.karma_components"></a><a class="link" href="karma_components.html" title="Karma Components">Karma Components</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives">Karma
+ Generator Primitives</a></span></dt>
+<dd><dl><dt><span class="section"><a href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator">Karma
+ Confix Generator</a></span></dt></dl></dd>
+<dt><span class="section"><a href="karma_components.html#spirit_repository.karma_components.karma_generator_directives">Karma
+ Generator Directives</a></span></dt>
+<dt><span class="section"><a href="karma_components.html#spirit_repository.karma_components.karma_compound_generators">Karma
+ Compound Generators</a></span></dt>
+</dl></div>
+<div class="section" title="Karma Generator Primitives">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="spirit_repository.karma_components.karma_generator_primitives"></a><a class="link" href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives" title="Karma Generator Primitives">Karma
+ Generator Primitives</a>
+</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator">Karma
+ Confix Generator</a></span></dt></dl></div>
+<div class="section" title="Karma Confix Generator">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator"></a><a class="link" href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator" title="Karma Confix Generator">Karma
+ Confix Generator</a>
+</h4></div></div></div>
+<a name="spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.description"></a><h6>
+<a name="id785515"></a>
+ <a class="link" href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.description">Description</a>
+ </h6>
+<p>
+ The <span class="emphasis"><em>Spirit.Karma</em></span> <code class="computeroutput"><span class="identifier">confix</span></code>
+ generator is a primitive generator component allowing to embed any generated
+ ouput inside an opening (a prefix) and a closing (a suffix). A simple example
+ is a C comment: <code class="computeroutput"><span class="comment">/* This is a C comment */</span></code>
+ which can be generated using the <code class="computeroutput"><span class="identifier">confix</span></code>
+ generator as: <code class="computeroutput"><span class="identifier">confix</span><span class="special">(</span><span class="string">"/*"</span><span class="special">,</span>
+ <span class="string">"*/"</span><span class="special">)[</span><span class="string">"This is a C comment"</span><span class="special">]</span></code>.
+ The general syntax for using the <code class="computeroutput"><span class="identifier">confix</span></code>
+ is:
+ </p>
+<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>
+<p>
+ which results in generating the sequence equivalent to
+ </p>
+<pre class="programlisting"><span class="identifier">prefix</span> <span class="special">&lt;&lt;</span> <span class="identifier">subject</span> <span class="special">&lt;&lt;</span> <span class="identifier">suffix</span>
+</pre>
+<p>
+ Using the <code class="computeroutput"><span class="identifier">confix</span></code> component
+ instead of the explicit sequence has the advantage of being able to encapsulate
+ the prefix and the suffix into a separate generator construct. The following
+ code snippet illustrates the idea:
+ </p>
+<pre class="programlisting"><span class="comment">// Define a metafunction allowing to compute the type of the confix()
+</span><span class="comment">// construct
+</span><span class="keyword">namespace</span> <span class="identifier">traits</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Prefix</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Suffix</span> <span class="special">=</span> <span class="identifier">Prefix</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">confix_spec</span>
+ <span class="special">{</span>
+ <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">spirit</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">terminal</span><span class="special">&lt;</span>
+ <span class="identifier">repository</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><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="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+<span class="special">};</span>
+
+<span class="comment">// Define a helper function allowing to create a confix() construct from
+</span><span class="comment">// arbitrary prefix and suffix generators
+</span><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Prefix</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Suffix</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">confix_spec</span><span class="special">&lt;</span><span class="identifier">Prefix</span><span class="special">,</span> <span class="identifier">Suffix</span><span class="special">&gt;::</span><span class="identifier">type</span>
+<span class="identifier">confix_spec</span><span class="special">(</span><span class="identifier">Prefix</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">prefix</span><span class="special">,</span> <span class="identifier">Suffix</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">suffix</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="identifier">repository</span><span class="special">::</span><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="special">}</span>
+
+<span class="comment">// Define a helper function to construct a HTML tag from the tag name
+</span><span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">confix_spec</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">type</span>
+<span class="identifier">tag</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">tagname</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">confix_spec</span><span class="special">(</span><span class="string">"&lt;"</span> <span class="special">+</span> <span class="identifier">tagname</span> <span class="special">+</span> <span class="string">"&gt;"</span><span class="special">,</span> <span class="string">"&lt;/"</span> <span class="special">+</span> <span class="identifier">tagname</span> <span class="special">+</span> <span class="string">"&gt;"</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="comment">// Define generators for different HTML tags the HTML tag
+</span><span class="keyword">typedef</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">confix_spec</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">type</span> <span class="identifier">ol</span> <span class="special">=</span> <span class="identifier">tag</span><span class="special">(</span><span class="string">"ol"</span><span class="special">);</span> <span class="comment">// &lt;ol&gt;...&lt;/ol&gt;
+</span><span class="keyword">typedef</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">confix_spec</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">type</span> <span class="identifier">li</span> <span class="special">=</span> <span class="identifier">tag</span><span class="special">(</span><span class="string">"li"</span><span class="special">);</span> <span class="comment">// &lt;li&gt;...&lt;/li&gt;
+</span></pre>
+<p>
+ Now, for instance, the above definitions allow to generate the HTML 'ol'
+ 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.karma_generator_primitives.karma_confix_generator.header"></a><h6>
+<a name="id786439"></a>
+ <a class="link" href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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.karma_generator_primitives.karma_confix_generator.synopsis"></a><h6>
+<a name="id786508"></a>
+ <a class="link" href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">confix</span><span class="special">(</span><span class="identifier">prefix</span><span class="special">,</span> <span class="identifier">suffix</span><span class="special">)[</span><span class="identifier">subject</span><span class="special">]</span>
+</pre>
+<a name="spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.parameters"></a><h6>
+<a name="id786556"></a>
+ <a class="link" href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.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">prefix</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The generator construct to use to format the opening (the prefix).
+ The prefix is the part generated <span class="emphasis"><em>before</em></span> any
+ output as generated by the <code class="computeroutput"><span class="identifier">subject</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">suffix</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The generator construct to use to format the ending (the suffix).
+ The suffix is the part generated <span class="emphasis"><em>after</em></span> any
+ output as generated by the <code class="computeroutput"><span class="identifier">subject</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">subject</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The generator construct to use to format the actual output in between
+ the <code class="computeroutput"><span class="identifier">prefix</span></code> and
+ <code class="computeroutput"><span class="identifier">suffix</span></code> parts.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ All
+ </p>
+<a name="spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.model_of"></a><h6>
+<a name="id790012"></a>
+ <a class="link" href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.model_of">Model
+ of</a>
+ </h6>
+<p>
+ Link to concept
+ </p>
+<a name="spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.objects"></a><h6>
+<a name="id790029"></a>
+ <a class="link" href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.objects">Objects</a>
+ </h6>
+<p>
+ Objects provided by the library
+ </p>
+<div class="variablelist" title="Notation">
+<p class="title"><b>Notation</b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">xxx</span></code></span></dt>
+<dd><p>
+ An XXX
+ </p></dd>
+</dl>
+</div>
+<p>
+ Semantics of an expression is defined only where it differs from, or is
+ not defined in _concept-of<span class="underline">XXX</span>.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Semantics
+ </p>
+ </th>
+<th>
+ <p>
+ Return type
+ </p>
+ </th>
+<th>
+ <p>
+ Complexity
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">xxx</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Semantics of <code class="computeroutput"><span class="identifier">xxx</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ XXX
+ </p>
+ </td>
+<td>
+ <p>
+ Constant
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+<a name="spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.example"></a><h6>
+<a name="id790168"></a>
+ <a class="link" href="karma_components.html#spirit_repository.karma_components.karma_generator_primitives.karma_confix_generator.example">Example</a>
+ </h6>
+<p>
+ Real example code. Use Quickbook import mechanism to link to actual working
+ code snippets here.
+ </p>
+</div>
+</div>
+<div class="section" title="Karma Generator Directives"><div class="titlepage"><div><div><h3 class="title">
+<a name="spirit_repository.karma_components.karma_generator_directives"></a><a class="link" href="karma_components.html#spirit_repository.karma_components.karma_generator_directives" title="Karma Generator Directives">Karma
+ Generator Directives</a>
+</h3></div></div></div></div>
+<div class="section" title="Karma Compound Generators"><div class="titlepage"><div><div><h3 class="title">
+<a name="spirit_repository.karma_components.karma_compound_generators"></a><a class="link" href="karma_components.html#spirit_repository.karma_components.karma_compound_generators" title="Karma Compound Generators">Karma
+ Compound Generators</a>
+</h3></div></div></div></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="preface.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi_components.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/spirit/repository/doc/html/spirit_repository/karma_confix_generator.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/karma_confix_generator.html 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,279 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Karma Confix Generator</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit Repository 0.1">
+<link rel="up" href="../index.html" title="Spirit Repository 0.1">
+<link rel="prev" href="../index.html" title="Spirit Repository 0.1">
+<link rel="next" href="qi_components.html" title="Qi 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="../index.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi_components.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Karma Confix Generator">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="spirit_repository.karma_confix_generator"></a><a class="link" href="karma_confix_generator.html" title="Karma Confix Generator">Karma Confix
+ Generator</a>
+</h2></div></div></div>
+<a name="spirit_repository.karma_confix_generator.description"></a><h4>
+<a name="id766221"></a>
+ <a class="link" href="karma_confix_generator.html#spirit_repository.karma_confix_generator.description">Description</a>
+ </h4>
+<p>
+ The <span class="emphasis"><em>Spirit.Karma</em></span> <code class="computeroutput"><span class="identifier">confix</span></code>
+ generator is a primitive generator component allowing to embed any generated
+ ouput inside an opening (a prefix) and a closing (a suffix). A simple example
+ is a C comment: <code class="computeroutput"><span class="comment">/* This is a C comment */</span></code>
+ which can be generated using the <code class="computeroutput"><span class="identifier">confix</span></code>
+ generator as: <code class="computeroutput"><span class="identifier">confix</span><span class="special">(</span><span class="string">"/*"</span><span class="special">,</span> <span class="string">"*/"</span><span class="special">)[</span><span class="string">"This is a C comment"</span><span class="special">]</span></code>.
+ The general syntax for using the <code class="computeroutput"><span class="identifier">confix</span></code>
+ is:
+ </p>
+<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>
+<p>
+ which results in generating the sequence equivalent to
+ </p>
+<pre class="programlisting"><span class="identifier">prefix</span> <span class="special">&lt;&lt;</span> <span class="identifier">subject</span> <span class="special">&lt;&lt;</span> <span class="identifier">suffix</span>
+</pre>
+<p>
+ Using the <code class="computeroutput"><span class="identifier">confix</span></code> component
+ instead of the explicit sequence has the advantage of being able to encapsulate
+ the prefix and the suffix into a separate generator construct. The following
+ code snippet illustrates the idea:
+ </p>
+<pre class="programlisting"><span class="comment">// Define a metafunction allowing to compute the type of the confix()
+</span><span class="comment">// construct
+</span><span class="keyword">namespace</span> <span class="identifier">traits</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Prefix</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Suffix</span> <span class="special">=</span> <span class="identifier">Prefix</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">confix_spec</span>
+ <span class="special">{</span>
+ <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">spirit</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">terminal</span><span class="special">&lt;</span>
+ <span class="identifier">repository</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><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="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+<span class="special">};</span>
+
+<span class="comment">// Define a helper function allowing to create a confix() construct from
+</span><span class="comment">// arbitrary prefix and suffix generators
+</span><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Prefix</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Suffix</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">confix_spec</span><span class="special">&lt;</span><span class="identifier">Prefix</span><span class="special">,</span> <span class="identifier">Suffix</span><span class="special">&gt;::</span><span class="identifier">type</span>
+<span class="identifier">confix_spec</span><span class="special">(</span><span class="identifier">Prefix</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">prefix</span><span class="special">,</span> <span class="identifier">Suffix</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">suffix</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="identifier">repository</span><span class="special">::</span><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="special">}</span>
+
+<span class="comment">// Define a helper function to construct a HTML tag from the tag name
+</span><span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">confix_spec</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">type</span>
+<span class="identifier">tag</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">tagname</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">confix_spec</span><span class="special">(</span><span class="string">"&lt;"</span> <span class="special">+</span> <span class="identifier">tagname</span> <span class="special">+</span> <span class="string">"&gt;"</span><span class="special">,</span> <span class="string">"&lt;/"</span> <span class="special">+</span> <span class="identifier">tagname</span> <span class="special">+</span> <span class="string">"&gt;"</span><span class="special">);</span>
+<span class="special">}</span>
+
+<span class="comment">// Define generators for different HTML tags the HTML tag
+</span><span class="keyword">typedef</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">confix_spec</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">type</span> <span class="identifier">ol</span> <span class="special">=</span> <span class="identifier">tag</span><span class="special">(</span><span class="string">"ol"</span><span class="special">);</span> <span class="comment">// &lt;ol&gt;...&lt;/ol&gt;
+</span><span class="keyword">typedef</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">confix_spec</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">type</span> <span class="identifier">li</span> <span class="special">=</span> <span class="identifier">tag</span><span class="special">(</span><span class="string">"li"</span><span class="special">);</span> <span class="comment">// &lt;li&gt;...&lt;/li&gt;
+</span></pre>
+<p>
+ Now, for instance, the above definitions allow to generate the HTML 'ol' 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_confix_generator.header"></a><h4>
+<a name="id767145"></a>
+ <a class="link" href="karma_confix_generator.html#spirit_repository.karma_confix_generator.header">Header</a>
+ </h4>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">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_confix_generator.synopsis"></a><h4>
+<a name="id767214"></a>
+ <a class="link" href="karma_confix_generator.html#spirit_repository.karma_confix_generator.synopsis">Synopsis</a>
+ </h4>
+<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_confix_generator.parameters"></a><h4>
+<a name="id767262"></a>
+ <a class="link" href="karma_confix_generator.html#spirit_repository.karma_confix_generator.parameters">Parameters</a>
+ </h4>
+<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">prefix</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The generator construct to use to format the opening (the prefix).
+ The prefix is the part generated <span class="emphasis"><em>before</em></span> any output
+ as generated by the <code class="computeroutput"><span class="identifier">subject</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">suffix</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The generator construct to use to format the ending (the suffix). The
+ suffix is the part generated <span class="emphasis"><em>after</em></span> any output
+ as generated by the <code class="computeroutput"><span class="identifier">subject</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">subject</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The generator construct to use to format the actual output in between
+ the <code class="computeroutput"><span class="identifier">prefix</span></code> and <code class="computeroutput"><span class="identifier">suffix</span></code> parts.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ All
+ </p>
+<a name="spirit_repository.karma_confix_generator.model_of"></a><h4>
+<a name="id769634"></a>
+ <a class="link" href="karma_confix_generator.html#spirit_repository.karma_confix_generator.model_of">Model of</a>
+ </h4>
+<p>
+ Link to concept
+ </p>
+<a name="spirit_repository.karma_confix_generator.objects"></a><h4>
+<a name="id769650"></a>
+ <a class="link" href="karma_confix_generator.html#spirit_repository.karma_confix_generator.objects">Objects</a>
+ </h4>
+<p>
+ Objects provided by the library
+ </p>
+<div class="variablelist" title="Notation">
+<p class="title"><b>Notation</b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">xxx</span></code></span></dt>
+<dd><p>
+ An XXX
+ </p></dd>
+</dl>
+</div>
+<p>
+ Semantics of an expression is defined only where it differs from, or is not
+ defined in _concept-of<span class="underline">XXX</span>.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Semantics
+ </p>
+ </th>
+<th>
+ <p>
+ Return type
+ </p>
+ </th>
+<th>
+ <p>
+ Complexity
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">xxx</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Semantics of <code class="computeroutput"><span class="identifier">xxx</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ XXX
+ </p>
+ </td>
+<td>
+ <p>
+ Constant
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+<a name="spirit_repository.karma_confix_generator.example"></a><h4>
+<a name="id769790"></a>
+ <a class="link" href="karma_confix_generator.html#spirit_repository.karma_confix_generator.example">Example</a>
+ </h4>
+<p>
+ Real example code. Use Quickbook import mechanism to link to actual working
+ code snippets here.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi_components.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/spirit/repository/doc/html/spirit_repository/preface.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/preface.html 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,201 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Preface</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit Repository 0.1">
+<link rel="up" href="../index.html" title="Spirit Repository 0.1">
+<link rel="prev" href="../index.html" title="Spirit Repository 0.1">
+<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="../index.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma_components.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Preface">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<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="id785149"></a>
+ <a class="link" href="preface.html#spirit_repository.preface.the_spirit_repository">The Spirit
+ Repository</a>
+ </h4>
+<p>
+ The Spirit repository is
+ a community effort collecting different reusable components (primitives, directives,
+ grammars, etc.) for <span class="emphasis"><em>Spirit.Qi</em></span> parsers and <span class="emphasis"><em>Spirit.Karma</em></span>
+ generators. All components in the repository have been peer reviewed on the
+ <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
+ General List</a>.
+ </p>
+<a name="spirit_repository.preface.how_to_use_this_manual"></a><h4>
+<a name="id785183"></a>
+ <a class="link" href="preface.html#spirit_repository.preface.how_to_use_this_manual">How to use
+ this manual</a>
+ </h4>
+<p>
+ Some icons are used to mark certain topics indicative of their relevance. These
+ icons precede some text to indicate:
+ </p>
+<div class="table">
+<a name="id785197"></a><p class="title"><b>Table 1. Icons</b></p>
+<div class="table-contents"><table class="table" summary="Icons">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Icon
+ </p>
+ </th>
+<th>
+ <p>
+ Name
+ </p>
+ </th>
+<th>
+ <p>
+ Meaning
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <span class="inlinemediaobject"><img src="../images/note.png" alt="note"></span>
+ </p>
+ </td>
+<td>
+ <p>
+ Note
+ </p>
+ </td>
+<td>
+ <p>
+ Generally useful information (an aside that doesn't fit in the flow of
+ the text)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <span class="inlinemediaobject"><img src="../images/tip.png" alt="tip"></span>
+ </p>
+ </td>
+<td>
+ <p>
+ Tip
+ </p>
+ </td>
+<td>
+ <p>
+ Suggestion on how to do something (especially something that not be obvious)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <span class="inlinemediaobject"><img src="../images/important.png" alt="important"></span>
+ </p>
+ </td>
+<td>
+ <p>
+ Important
+ </p>
+ </td>
+<td>
+ <p>
+ Important note on something to take particular notice of
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <span class="inlinemediaobject"><img src="../images/caution.png" alt="caution"></span>
+ </p>
+ </td>
+<td>
+ <p>
+ Caution
+ </p>
+ </td>
+<td>
+ <p>
+ Take special care with this - it may not be what you expect and may cause
+ bad results
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <span class="inlinemediaobject"><img src="../images/alert.png" alt="alert"></span>
+ </p>
+ </td>
+<td>
+ <p>
+ Danger
+ </p>
+ </td>
+<td>
+ <p>
+ This is likely to cause serious trouble if ignored
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+ This documentation is automatically generated by Boost QuickBook documentation
+ tool. QuickBook can be found in the <a href="http://www.boost.org/tools/index.html" target="_top">Boost
+ Tools</a>.
+ </p>
+<a name="spirit_repository.preface.support"></a><h4>
+<a name="id785438"></a>
+ <a class="link" href="preface.html#spirit_repository.preface.support">Support</a>
+ </h4>
+<p>
+ Please direct all questions to Spirit's mailing list. You can subscribe to
+ the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
+ General List</a>. The mailing list has a searchable archive. A search link
+ to this archive is provided in Spirit's
+ home page. You may also read and post messages to the mailing list through
+ <a href="news://news.gmane.org/gmane.comp.spirit.general" target="_top">Spirit General
+ NNTP news portal</a> (thanks to Gmane).
+ The news group mirrors the mailing list. Here is a link to the archives: http://news.gmane.org/gmane.comp.parsers.spirit.general.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma_components.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components.html 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Qi Components</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit Repository 0.1">
+<link rel="up" href="../index.html" title="Spirit Repository 0.1">
+<link rel="prev" 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="karma_components.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a>
+</div>
+<div class="section" title="Qi Components">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="spirit_repository.qi_components"></a><a class="link" href="qi_components.html" title="Qi Components">Qi Components</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="qi_components.html#spirit_repository.qi_components.qi_parser_primitives">Qi
+ Parser Primitives</a></span></dt>
+<dt><span class="section"><a href="qi_components.html#spirit_repository.qi_components.qi_parser_directives">Qi
+ Parser Directives</a></span></dt>
+<dt><span class="section"><a href="qi_components.html#spirit_repository.qi_components.qi_compound_parsers">Qi
+ Compound Parsers</a></span></dt>
+</dl></div>
+<div class="section" title="Qi Parser Primitives"><div class="titlepage"><div><div><h3 class="title">
+<a name="spirit_repository.qi_components.qi_parser_primitives"></a><a class="link" href="qi_components.html#spirit_repository.qi_components.qi_parser_primitives" title="Qi Parser Primitives">Qi
+ Parser Primitives</a>
+</h3></div></div></div></div>
+<div class="section" title="Qi Parser Directives"><div class="titlepage"><div><div><h3 class="title">
+<a name="spirit_repository.qi_components.qi_parser_directives"></a><a class="link" href="qi_components.html#spirit_repository.qi_components.qi_parser_directives" title="Qi Parser Directives">Qi
+ Parser Directives</a>
+</h3></div></div></div></div>
+<div class="section" title="Qi Compound Parsers"><div class="titlepage"><div><div><h3 class="title">
+<a name="spirit_repository.qi_components.qi_compound_parsers"></a><a class="link" href="qi_components.html#spirit_repository.qi_components.qi_compound_parsers" title="Qi Compound Parsers">Qi
+ Compound Parsers</a>
+</h3></div></div></div></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="karma_components.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/spirit/repository/doc/karma.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/karma.qbk 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,19 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Joel de Guzman
+ Copyright (C) 2001-2009 Hartmut Kaiser
+
+ 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)
+===============================================================================/]
+
+[section Karma Components]
+
+[section Karma Generator Primitives]
+[include karma/confix.qbk]
+[endsect]
+[section Karma Generator Directives]
+[endsect]
+[section Karma Compound Generators]
+[endsect]
+
+[endsect]

Added: trunk/libs/spirit/repository/doc/karma/confix.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/karma/confix.qbk 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,120 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Hartmut Kaiser
+ Copyright (C) 2001-2009 Joel de Guzman
+
+ 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)
+===============================================================================/]
+
+[section Karma Confix Generator]
+
+[heading Description]
+
+The __karma__ `confix` generator is a primitive generator component
+allowing to embed any generated ouput inside an opening (a prefix) and a
+closing (a suffix). A simple example is a C comment: `/* This is a C comment */`
+which can be generated using the `confix` generator as:
+`confix("/*", "*/")["This is a C comment"]`. The general syntax for using the
+`confix` is:
+
+ confix(prefix, suffix)[subject]
+
+which results in generating the sequence equivalent to
+
+ prefix << subject << suffix
+
+Using the `confix` component instead of the explicit sequence has the advantage
+of being able to encapsulate the prefix and the suffix into a separate generator
+construct. The following code snippet illustrates the idea:
+
+ // Define a metafunction allowing to compute the type of the confix()
+ // construct
+ namespace traits
+ {
+ template <typename Prefix, typename Suffix = Prefix>
+ struct confix_spec
+ {
+ using namespace boost::spirit;
+ typedef typename spirit::result_of::terminal<
+ repository::tag::confix(Prefix, Suffix)
+ >::type type;
+ };
+ };
+
+ // Define a helper function allowing to create a confix() construct from
+ // arbitrary prefix and suffix generators
+ template <typename Prefix, typename Suffix>
+ typename traits::confix_spec<Prefix, Suffix>::type
+ confix_spec(Prefix const& prefix, Suffix const& suffix)
+ {
+ using namespace boost::spirit;
+ return repository::confix(prefix, suffix);
+ }
+
+ // Define a helper function to construct a HTML tag from the tag name
+ inline typename traits::confix_spec<std::string>::type
+ tag (std::string const& tagname)
+ {
+ return confix_spec("<" + tagname + ">", "</" + tagname + ">");
+ }
+
+ // Define generators for different HTML tags the HTML tag
+ typedef traits::confix_spec<std::string>::type ol = tag("ol"); // <ol>...</ol>
+ typedef traits::confix_spec<std::string>::type li = tag("li"); // <li>...</li>
+
+Now, for instance, the above definitions allow to generate the HTML 'ol' tag
+using a simple: `ol["Some text"]` (which results in `<ol>Some text</ol>`).
+
+[heading Header]
+
+ #include <boost/spirit/repository/include/karma_confix.hpp>
+
+[heading Synopsis]
+
+ confix(prefix, suffix)[subject]
+
+[heading Parameters]
+
+[table
+ [[Parameter] [Description]]
+ [[`prefix`] [The generator construct to use to format the
+ opening (the prefix). The prefix is the part
+ generated /before/ any output as generated by
+ the `subject`.]]
+ [[`suffix`] [The generator construct to use to format the
+ ending (the suffix). The suffix is the part
+ generated /after/ any output as generated by
+ the `subject`.]]
+ [[`subject`] [The generator construct to use to format the
+ actual output in between the `prefix` and `suffix`
+ parts.]]
+]
+
+All
+
+[heading Model of]
+
+Link to concept
+
+[heading Objects]
+
+Objects provided by the library
+
+[variablelist Notation
+ [[`xxx`] [An XXX]]
+]
+
+Semantics of an expression is defined only where it differs from, or is not
+defined in _concept-of_XXX_.
+
+[table
+ [[Expression] [Semantics] [Return type] [Complexity]]
+ [[`xxx`] [Semantics of `xxx`] [XXX] [Constant]]
+]
+
+[heading Example]
+
+Real example code. Use Quickbook import mechanism to link to actual
+working code snippets here.
+
+[endsect]

Added: trunk/libs/spirit/repository/doc/preface.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/preface.qbk 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,57 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Joel de Guzman
+ Copyright (C) 2001-2009 Hartmut Kaiser
+
+ 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)
+===============================================================================/]
+
+[section Preface]
+
+[heading The Spirit Repository]
+
+The __spirit__ repository is a community effort collecting different reusable
+components (primitives, directives, grammars, etc.) for __qi__ parsers and
+__karma__ generators. All components in the repository have been peer reviewed
+on the __spirit_list__.
+
+[heading How to use this manual]
+
+Some icons are used to mark certain topics indicative of their relevance.
+These icons precede some text to indicate:
+
+[table Icons
+
+ [[Icon] [Name] [Meaning]]
+
+ [[__note__] [Note] [Generally useful information (an aside that
+ doesn't fit in the flow of the text)]]
+
+ [[__tip__] [Tip] [Suggestion on how to do something
+ (especially something that not be obvious)]]
+
+ [[__important__] [Important] [Important note on something to take
+ particular notice of]]
+
+ [[__caution__] [Caution] [Take special care with this - it may
+ not be what you expect and may cause bad
+ results]]
+
+ [[__danger__] [Danger] [This is likely to cause serious
+ trouble if ignored]]
+]
+
+This documentation is automatically generated by Boost QuickBook documentation
+tool. QuickBook can be found in the __boost_tools__.
+
+[heading Support]
+
+Please direct all questions to Spirit's mailing list. You can subscribe to the
+__spirit_list__. The mailing list has a searchable archive. A search link to
+this archive is provided in __spirit__'s home page. You may also read and post
+messages to the mailing list through __spirit_general__ (thanks to __gmane__).
+The news group mirrors the mailing list. Here is a link to the archives:
+__mlist_archive__.
+
+[endsect] [/ Preface]
+

Added: trunk/libs/spirit/repository/doc/qi.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/qi.qbk 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,20 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Joel de Guzman
+ Copyright (C) 2001-2009 Hartmut Kaiser
+
+ 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)
+===============================================================================/]
+
+[section Qi Components]
+
+[section Qi Parser Primitives]
+[endsect]
+[section Qi Parser Directives]
+[endsect]
+[section Qi Compound Parsers]
+[endsect]
+
+
+[endsect] [/ Qi]
+

Added: trunk/libs/spirit/repository/doc/spirit2_repository.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/repository/doc/spirit2_repository.qbk 2009-05-26 19:40:44 EDT (Tue, 26 May 2009)
@@ -0,0 +1,58 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Joel de Guzman
+ Copyright (C) 2001-2009 Hartmut Kaiser
+
+ 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)
+===============================================================================/]
+
+[article Spirit Repository
+ [quickbook 1.4]
+ [version 0.1]
+ [authors [de Guzman, Joel], [Kaiser, Hartmut]]
+ [copyright 2001 2002 2003 2004 2005 2006 2007 2008 2009 Joel de Guzman, Hartmut Kaiser]
+ [purpose Parser and Generator Library]
+ [license
+ 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])
+ ]
+]
+
+[/ May 26, 2009 ]
+
+[def __spirit__ [@http://spirit.sourceforge.net Spirit]]
+[def __spirit_list__ [@http://www.nabble.com/The-Spirit-Parser-Library-f3430.html Spirit General List]]
+[def __phoenix__ [@../../phoenix/doc/html/index.html Phoenix]]
+[def __phoenix2__ [@../../phoenix/doc/html/index.html Phoenix2]]
+[def __fusion__ [@http://spirit.sourceforge.net/dl_more/fusion_v2/libs/fusion/doc/html/index.html Fusion]]
+[def __mpl__ [@http://www.boost.org/libs/mpl/index.html MPL]]
+[def __boost__ [@http://www.boost.org/ Boost]]
+[def __boost_tools__ [@http://www.boost.org/tools/index.html Boost Tools]]
+[def __spirit_list__ [@https://lists.sourceforge.net/lists/listinfo/spirit-general Spirit Mailing List]]
+[def __spirit_general__ [@news://news.gmane.org/gmane.comp.spirit.general Spirit General NNTP news portal]]
+[def __gmane__ [@http://www.gmane.org Gmane]]
+[def __mlist_archive__ [@http://news.gmane.org/gmane.comp.parsers.spirit.general]]
+
+[def __classic__ /Spirit.Classic/]
+[def __qi__ /Spirit.Qi/]
+[def __karma__ /Spirit.Karma/]
+[def __lex__ /Spirit.Lex/]
+
+[/ Some images ]
+
+[def __note__ [$images/note.png]]
+[def __tip__ [$images/tip.png]]
+[def __important__ [$images/important.png]]
+[def __caution__ [$images/caution.png]]
+[def __danger__ [$images/alert.png]]
+
+[/ Here we go ]
+
+[include preface.qbk]
+
+[include karma.qbk]
+
+[include qi.qbk]
+
+


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