$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: sixtrillion_at_[hidden]
Date: 2007-09-04 20:28:31
Author: sixtrillion
Date: 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
New Revision: 39123
URL: http://svn.boost.org/trac/boost/changeset/39123
Log:
Boost.Reflection initial docs
interpreter.qbk had some sort of error - I merely removed the offending text, which will probably have ruined the formatting. This will need to be looked into.
Added:
   sandbox/libs/reflection/doc/html/
   sandbox/libs/reflection/doc/html/HTML.manifest   (contents, props changed)
   sandbox/libs/reflection/doc/html/boost_reflection/
   sandbox/libs/reflection/doc/html/boost_reflection/interpreter.html   (contents, props changed)
   sandbox/libs/reflection/doc/html/boost_reflection/introduction.html   (contents, props changed)
   sandbox/libs/reflection/doc/html/boost_reflection/tutorials/
   sandbox/libs/reflection/doc/html/boost_reflection/tutorials.html   (contents, props changed)
   sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial01.html   (contents, props changed)
   sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial02.html   (contents, props changed)
   sandbox/libs/reflection/doc/html/boostbook.css   (contents, props changed)
   sandbox/libs/reflection/doc/html/index.html   (contents, props changed)
Text files modified: 
   sandbox/libs/reflection/doc/interpreter.qbk |     4 ++--                                    
   1 files changed, 2 insertions(+), 2 deletions(-)
Added: sandbox/libs/reflection/doc/html/HTML.manifest
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/HTML.manifest	2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,6 @@
+index.html
+boost_reflection/introduction.html
+boost_reflection/tutorials.html
+boost_reflection/tutorials/tutorial01.html
+boost_reflection/tutorials/tutorial02.html
+boost_reflection/interpreter.html
Added: sandbox/libs/reflection/doc/html/boost_reflection/interpreter.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boost_reflection/interpreter.html	2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Interpreter prototype</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="up" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="prev" href="tutorials/tutorial02.html" title=" Tutorial 2">
+</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="tutorials/tutorial02.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" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_reflection.interpreter"></a> Interpreter prototype</h2></div></div></div>
+<p>
+      In this section we will describe one of the examples. This example is special
+      because it is one of the reasons that motivated the development of the library.
+    </p>
+<p>
+      The example is a prototype of a C++ interpreter. Its main goal is to allow
+      the user to create instances of the reflected interfaces and then call its
+      methods via the reflection too.
+    </p>
+<p>
+      Nowadays the interpreter is just work-in-progress of a prototype. So you should
+      understand its uncompleteness, but now it has the following features:
+    </p>
+<div class="orderedlist"><ol type="1">
+<li>
+        Instance creation with parameters.
+      </li>
+<li>
+        Method call with parameters.
+      </li>
+</ol></div>
+<p>
+      Anyway this features are limited to one interface (car interface) and also
+      constrained by the number of parameters (mostly because of pattern matching
+      issues).
+    </p>
+<p>
+      To show the current syntax we think that the best is to show an example session.
+    </p>
+<p>
+      In this session we create some instances and call the car::start method. Also
+      we show what happens when we predicated over unknown instances.
+    </p>
+<p>
+      Let's see the session:
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup></colgroup>
+<tbody></tbody>
+</table></div>
+<p>
+      ^Boost.Reflection example - Prototype C++ interpreter.<br> <br> > beetle=Compact(VWBeetle)<br>
+      Instance [beetle] created.<br> > beetle.start()<br> VWBeetle started.<br>
+      --> 1<br> > betle.start()<br> Instance betle not found.<br> >
+      test<br> The command "test" is invalid.<br> > Cherokee=SUV(GrandCherokee)<br>
+      Instance [Cherokee] created.<br> > Cherokee.start()<br> GrandCherokee
+      started.<br> --> 1<br> > Ch.start()<br> Instance Ch not found.<br>
+      ]
+    </p>
+<p>
+      In this session you could see:
+    </p>
+<div class="orderedlist"><ol type="1">
+<li>
+        we create a new Compact car instance. Its name is VWBeetle and we store it
+        in a instance variable called beetle.
+      </li>
+<li>
+        we call start in the newly created instance. It yields true.
+      </li>
+<li>
+        we try to call an unknown instance.
+      </li>
+<li>
+        we type a wrong command.
+      </li>
+<li>
+        then we create another instance and we start it.
+      </li>
+</ol></div>
+<p>
+      Of course this interpreter is very limited, but it shows the potential of Boost.Reflection
+      to develop software that use the meta-information of its structure.
+    </p>
+</div>
+<table width="100%"><tr>
+<td align="left"></td>
+<td align="right"><small>Copyright © 2007 Mariano G. Consoni, Jeremy Pack</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorials/tutorial02.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: sandbox/libs/reflection/doc/html/boost_reflection/introduction.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boost_reflection/introduction.html	2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Introduction</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="up" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="prev" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="next" href="tutorials.html" title="Tutorials">
+</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="tutorials.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_reflection.introduction"></a> Introduction</h2></div></div></div>
+<p>
+      Reflection is the ability of a computer program to observe its structure and
+      possibly modify it. Our library tries to achieve that objective, easing the
+      development of this kind of programs and releasing the programmer of the task
+      of constructing a meta-level layer describing the classes and methods.
+    </p>
+<p>
+      In short, Boost.Reflection has a set of classes that allows the programmer
+      to store information about their C++ classes and methods, and use (call) them
+      using run-time identifiers. For example, we can create a class, attach some
+      meta-level information and then use run-time strings to select the method that
+      we want to call.
+    </p>
+<p>
+      Unfortunately, the library is not fully developed yet. It only has the basic
+      functionalities and it's not much than an interesting prototype on the subject.
+    </p>
+<p>
+      The documentation is, also, completely incomplete. Sorry. Look at tutorial
+      #1 for examples of basic usage.
+    </p>
+</div>
+<table width="100%"><tr>
+<td align="left"></td>
+<td align="right"><small>Copyright © 2007 Mariano G. Consoni, Jeremy Pack</small></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="tutorials.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/libs/reflection/doc/html/boost_reflection/tutorials.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boost_reflection/tutorials.html	2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Tutorials</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="up" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="prev" href="introduction.html" title=" Introduction">
+<link rel="next" href="tutorials/tutorial01.html" title=" Tutorial 1">
+</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="introduction.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="tutorials/tutorial01.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_reflection.tutorials"></a>Tutorials</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"> Tutorial 1</span></dt>
+<dt><span class="section"> Tutorial 2</span></dt>
+</dl></div>
+<p>
+      We only have two tutorials for now. The first is the basic example and it shows
+      the implemented functionalities. The second is about Boost.Extension integration.
+    </p>
+<p>
+      The tutorials code can be found in the examples folder.
+    </p>
+</div>
+<table width="100%"><tr>
+<td align="left"></td>
+<td align="right"><small>Copyright © 2007 Mariano G. Consoni, Jeremy Pack</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="introduction.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="tutorials/tutorial01.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial01.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial01.html	2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,210 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Tutorial 1</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="up" href="../tutorials.html" title="Tutorials">
+<link rel="prev" href="../tutorials.html" title="Tutorials">
+<link rel="next" href="tutorial02.html" title=" Tutorial 2">
+</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="../tutorials.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial02.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_reflection.tutorials.tutorial01"></a> Tutorial 1</h3></div></div></div>
+<p>
+        Let's create a car class. This will later be our reflected class.
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="keyword">class</span> <span class="identifier">car</span> <span class="special">{</span>
+<span class="keyword">private</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">bool</span> <span class="identifier">started_</span><span class="special">;</span>
+
+<span class="keyword">public</span><span class="special">:</span>
+  <span class="identifier">car</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">car_name</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">name_</span><span class="special">(</span><span class="identifier">car_name</span><span class="special">),</span> <span class="identifier">started_</span><span class="special">(</span><span class="keyword">false</span><span class="special">)</span> <span class="special">{}</span>
+
+  <span class="keyword">bool</span> <span class="identifier">start</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{</span> 
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">name_</span> <span class="special"><<</span> <span class="string">" started."</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> 
+    <span class="identifier">started_</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
+    <span class="keyword">return</span> <span class="keyword">true</span><span class="special">;</span>
+  <span class="special">}</span>
+
+  <span class="keyword">bool</span> <span class="identifier">turn</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">angle</span><span class="special">)</span>
+  <span class="special">{</span>
+    <span class="keyword">if</span><span class="special">(</span><span class="identifier">started_</span><span class="special">)</span> <span class="special">{</span>
+      <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Turning "</span> <span class="special"><<</span> <span class="identifier">name_</span> <span class="special"><<</span> <span class="string">" "</span><span class="special"><<</span> <span class="identifier">angle</span> <span class="special"><<</span> <span class="string">" degrees."</span> 
+                <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+      <span class="keyword">return</span> <span class="keyword">true</span><span class="special">;</span>
+    <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+      <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Cannot turn before starting the engine of "</span> 
+                <span class="special"><<</span> <span class="identifier">name_</span> <span class="special"><<</span> <span class="string">"."</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+      <span class="keyword">return</span> <span class="keyword">false</span><span class="special">;</span>
+    <span class="special">}</span>
+  <span class="special">}</span>
+  <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">car</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
+<span class="special">};</span> 
+</pre>
+<p>
+      </p>
+<p>
+        It has methods for starting the engine and turning the car. Note that you
+        can't turn before starting the engine (it has state).
+      </p>
+<p>
+        Now we will create the reflection for this class. Let's note that we don't
+        have to add any MACRO to the original header file.
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">extension</span><span class="special">::</span><span class="identifier">reflection</span><span class="special"><</span><span class="identifier">car</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">car_reflection</span><span class="special">(</span><span class="string">"A Car!"</span><span class="special">);</span>
+</pre>
+<p>
+      </p>
+<p>
+        With this instruction we create a reflection. The template parameters describe
+        the reflected class and the type that we will use to store additional data
+        (the Info class). The parameter of the constructor is an instance of this
+        class, in this case we use it to store a short description.
+      </p>
+<p>
+        Now that we have created the reflection (i.e. the place where we will store
+        the meta-information of the class) we can start to add the methods.
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">add</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">>(&</span><span class="identifier">car</span><span class="special">::</span><span class="identifier">start</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">add</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">float</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">car</span><span class="special">::</span><span class="identifier">turn</span><span class="special">,</span> <span class="string">"turn"</span><span class="special">,</span> <span class="string">"turn_angle"</span><span class="special">);</span>
+</pre>
+<p>
+      </p>
+<p>
+        We are adding here the two methods. First we add the start method. The template
+        parameters indicate that we will identify this method by an int (3 in this
+        case) and that the return type is bool. We also have to provide a pointer
+        to the method.
+      </p>
+<p>
+        Then we add the second method. It's described by an string ("turn"
+        in this case), and it returns a bool. Also we say that it receives a float
+        and it's described by a string ("turn_angle").
+      </p>
+<p>
+        Having the methods stored in our reflection we can now see how to call them.
+        We have two ways.
+      </p>
+<p>
+        First, let's define one instance to use the reflection on:
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="identifier">car</span> <span class="identifier">porsche_911</span><span class="special">(</span><span class="string">"Porsche 911"</span><span class="special">);</span>
+</pre>
+<p>
+      </p>
+<p>
+        The simplest one is the following:
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">call</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">>(&</span><span class="identifier">porsche_911</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+</pre>
+<p>
+      </p>
+<p>
+        We just invoke the "call" method of the reflection. We provide
+        the instance and the description of the method. Let's see how to use it when
+        the method has parameters:
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">call</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> 
+  <span class="keyword">float</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">porsche_911</span><span class="special">,</span> <span class="string">"turn"</span><span class="special">,</span> <span class="special">.</span><span class="number">5f</span><span class="special">);</span>
+</pre>
+<p>
+      </p>
+<p>
+        Now we have to define with template arguments the way that we describe the
+        method and the parameters. Also we have to provide the instance, the method
+        description and the value of the parameter.
+      </p>
+<p>
+        Of course, this approach is a bit limited, because we have to provide a lot
+        of information to call the actual method.
+      </p>
+<p>
+        Using meta-level programming we are trying to achieve a flexibility that
+        could be mined with that requirements. Simply we don't have such information
+        most of the time. Because of that we implemented a second way to call methods.
+      </p>
+<p>
+        First we define a parameter_map. We will store there the possible parameters.
+        Note that we're defining an unneeded parameter. It'll be simply ignored.
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">extension</span><span class="special">::</span><span class="identifier">parameter_map</span> <span class="identifier">pm</span><span class="special">;</span>
+<span class="identifier">pm</span><span class="special">.</span><span class="identifier">add</span><span class="special"><</span><span class="keyword">float</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="number">15f</span><span class="special">,</span> <span class="string">"turn_angle"</span><span class="special">);</span>
+<span class="identifier">pm</span><span class="special">.</span><span class="identifier">add</span><span class="special"><</span><span class="keyword">int</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="number">50</span><span class="special">,</span> <span class="string">"acceleration"</span><span class="special">);</span>
+</pre>
+<p>
+      </p>
+<p>
+        Then we use this parameter_map to call the method and provide the needed
+        parameters. In this way we just have to know the method ID.
+      </p>
+<p>
+        For example in the case of turn we could now call it with:
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">call</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="string">"turn"</span><span class="special">,</span> <span class="special">&</span><span class="identifier">porsche_911</span><span class="special">,</span> <span class="identifier">pm</span><span class="special">);</span>
+</pre>
+<p>
+      </p>
+<p>
+        This are the basic functionalities of the library that allows the programmer
+        to generate the meta-class layer and use them dynamically at run-time.
+      </p>
+</div>
+<table width="100%"><tr>
+<td align="left"></td>
+<td align="right"><small>Copyright © 2007 Mariano G. Consoni, Jeremy Pack</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../tutorials.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial02.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial02.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial02.html	2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,153 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Tutorial 2</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="up" href="../tutorials.html" title="Tutorials">
+<link rel="prev" href="tutorial01.html" title=" Tutorial 1">
+<link rel="next" href="../interpreter.html" title=" Interpreter prototype">
+</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="tutorial01.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../interpreter.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_reflection.tutorials.tutorial02"></a> Tutorial 2</h3></div></div></div>
+<p>
+        In this tutorial we show how Boost.Extension could be integrated with Boost.Reflection.
+        This relationship is important because we can load different factories with
+        Boost.Extension (from dynamic link libraries) and then reflect its instances
+        using Boost.Reflection.
+      </p>
+<p>
+        This example is based in the first tutorial , specially in the Reflection
+        part. So it's preferred that the reader is familiarized with that tutorial,
+        and of course has a basic understanding of Boost.Extension.
+      </p>
+<p>
+        First, we create a Boost.Extension based in our car interface. It defines
+        two derived classes, and has the export declaration.
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="keyword">class</span> <span class="identifier">suv</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">car</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+        <span class="identifier">suv</span><span class="special">(</span><span class="keyword">const</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="special">:</span> <span class="identifier">car</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span> <span class="special">{}</span>
+        <span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">get_type</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="string">"It's a SUV."</span><span class="special">;</span> <span class="special">}</span>
+        <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">suv</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
+<span class="special">};</span>
+
+<span class="keyword">class</span> <span class="identifier">compact</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">car</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+        <span class="identifier">compact</span><span class="special">(</span><span class="keyword">const</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="special">:</span> <span class="identifier">car</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span> <span class="special">{}</span>
+        <span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">get_type</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="string">"It's a compact."</span><span class="special">;</span> <span class="special">}</span>
+        <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">compact</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
+<span class="special">};</span>
+</pre>
+<p>
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="keyword">extern</span> <span class="string">"C"</span> 
+<span class="keyword">void</span> <span class="identifier">BOOST_EXTENSION_EXPORT_DECL</span> 
+<span class="identifier">extension_export_car</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">::</span><span class="identifier">factory_map</span> <span class="special">&</span> <span class="identifier">fm</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="identifier">fm</span><span class="special">.</span><span class="identifier">add</span><span class="special"><</span><span class="identifier">suv</span><span class="special">,</span> <span class="identifier">car</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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>(</span><span class="string">"SUV"</span><span class="special">);</span>
+  <span class="identifier">fm</span><span class="special">.</span><span class="identifier">add</span><span class="special"><</span><span class="identifier">compact</span><span class="special">,</span> <span class="identifier">car</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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>(</span><span class="string">"Compact"</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+      </p>
+<p>
+        We compile it as a dynamic link library that will be loaded from the main
+        program.
+      </p>
+<p>
+        Having the library we could start our main program. We'll define our reflection
+        (creating it and adding methods) and them we'll cycle the factories, create
+        some instances and use our reflection to call methods.
+      </p>
+<p>
+        Let's define the reflection, very similar to the one in tutorial 1:
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">extension</span><span class="special">::</span><span class="identifier">reflection</span><span class="special"><</span><span class="identifier">car</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">car_reflection</span><span class="special">(</span><span class="string">"A Car!"</span><span class="special">);</span>
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">add</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">>(&</span><span class="identifier">car</span><span class="special">::</span><span class="identifier">start</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">add</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">float</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">car</span><span class="special">::</span><span class="identifier">turn</span><span class="special">,</span> <span class="string">"turn"</span><span class="special">,</span> <span class="string">"turn_angle"</span><span class="special">);</span>
+</pre>
+<p>
+      </p>
+<p>
+        Now we load the dynamic link library:
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libcar_lib.extension"</span><span class="special">,</span> 
+                    <span class="string">"extension_export_car"</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="identifier">factory</span><span class="special"><</span><span class="identifier">car</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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="special">></span> <span class="special">&</span> <span class="identifier">factory_list</span> <span class="special">=</span> 
+        <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">car</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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>();</span>  
+</pre>
+<p>
+      </p>
+<p>
+        Now, the interesting part. We iterate the factories searching for a Compacts
+        factory. When we find it we create an instance, and then we use our car reflection
+        to call the 3 method (start).
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting">
+<span class="keyword">for</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="identifier">factory</span><span class="special"><</span><span class="identifier">car</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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="special">></span>
+       <span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">current_car</span> <span class="special">=</span> <span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span> 
+     <span class="identifier">current_car</span> <span class="special">!=</span> <span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span> 
+     <span class="special">++</span><span class="identifier">current_car</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="keyword">if</span><span class="special">(</span><span class="identifier">current_car</span><span class="special">-></span><span class="identifier">get_info</span><span class="special">()</span> <span class="special">==</span> <span class="string">"Compact"</span><span class="special">)</span> <span class="special">{</span>
+     <span class="identifier">car</span> <span class="special">*</span><span class="identifier">beetle</span><span class="special">(</span><span class="identifier">current_car</span><span class="special">-></span><span class="identifier">create</span><span class="special">(</span><span class="string">"VW New Beetle"</span><span class="special">));</span>
+     <span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">call</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">>(</span><span class="identifier">beetle</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+     <span class="keyword">delete</span> <span class="identifier">beetle</span><span class="special">;</span>
+  <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+      </p>
+<p>
+        In this way you can load instance factories dynamically, and then use your
+        reflections to access your methods.
+      </p>
+</div>
+<table width="100%"><tr>
+<td align="left"></td>
+<td align="right"><small>Copyright © 2007 Mariano G. Consoni, Jeremy Pack</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial01.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../interpreter.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/libs/reflection/doc/html/boostbook.css
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boostbook.css	2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,511 @@
+/*=============================================================================
+    Copyright (c) 2004 Joel de Guzman
+    http://spirit.sourceforge.net/
+
+    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)
+=============================================================================*/
+
+/*=============================================================================
+    Body defaults
+=============================================================================*/
+
+    body 
+    {
+        margin: 1em;
+        font-family: sans-serif;
+    }
+
+/*=============================================================================
+    Paragraphs
+=============================================================================*/
+
+    p 
+    {
+        text-align: left;
+        font-size: 10pt; 
+        line-height: 1.15;
+    }
+
+/*=============================================================================
+    Program listings
+=============================================================================*/
+
+    /* Code on paragraphs */
+    p tt.computeroutput
+    {
+        font-size: 9pt;
+    }
+
+    pre.synopsis
+    {
+        font-size: 90%;
+        margin: 1pc 4% 0pc 4%;
+        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+    }
+
+    .programlisting, 
+    .screen
+    {
+        font-size: 9pt;
+        display: block;
+        margin: 1pc 4% 0pc 4%;
+        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+    }
+
+    /* Program listings in tables don't get borders */
+    td .programlisting, 
+    td .screen
+    {
+        margin: 0pc 0pc 0pc 0pc;
+        padding:  0pc 0pc 0pc 0pc;
+    }
+
+/*=============================================================================
+    Headings
+=============================================================================*/
+
+    h1, h2, h3, h4, h5, h6 
+    { 
+        text-align: left; 
+        margin: 1em 0em 0.5em 0em;
+        font-weight: bold;
+    }
+
+    h1 { font: 140% }
+    h2 { font: bold 140% }
+    h3 { font: bold 130% }
+    h4 { font: bold 120% }
+    h5 { font: italic 110% }
+    h6 { font: italic 100% }
+
+    /* Top page titles */
+    title, 
+    h1.title, 
+    h2.title
+    h3.title, 
+    h4.title, 
+    h5.title, 
+    h6.title, 
+    .refentrytitle
+    {
+        font-weight: bold;
+        margin-bottom: 1pc;
+    }
+
+    h1.title { font-size: 140% }
+    h2.title { font-size: 140% }
+    h3.title { font-size: 130% }
+    h4.title { font-size: 120% }
+    h5.title { font-size: 110% }
+    h6.title { font-size: 100% }
+
+    .section h1 
+    {
+        margin: 0em 0em 0.5em 0em;
+        font-size: 140%;
+    }
+
+    .section h2 { font-size: 140% }
+    .section h3 { font-size: 130% }
+    .section h4 { font-size: 120% }
+    .section h5 { font-size: 110% }
+    .section h6 { font-size: 100% }
+
+    /* Code on titles */
+    h1 tt.computeroutput { font-size: 140% }
+    h2 tt.computeroutput { font-size: 140% }
+    h3 tt.computeroutput { font-size: 130% }
+    h4 tt.computeroutput { font-size: 120% }
+    h5 tt.computeroutput { font-size: 110% }
+    h6 tt.computeroutput { font-size: 100% }
+
+/*=============================================================================
+    Author
+=============================================================================*/
+
+    h3.author 
+    { 
+        font-size: 100% 
+    }
+
+/*=============================================================================
+    Lists
+=============================================================================*/
+
+    li
+    {
+        font-size: 10pt;
+        line-height: 1.3;
+    }
+    
+    /* Unordered lists */
+    ul 
+    {
+        text-align: left;
+    }
+    
+    /* Ordered lists */
+    ol 
+    {
+        text-align: left;
+    }
+
+/*=============================================================================
+    Links
+=============================================================================*/
+
+    a
+    {
+        text-decoration: none; /* no underline */
+    }
+    
+    a:hover
+    {
+        text-decoration: underline;
+    }
+
+/*=============================================================================
+    Spirit style navigation
+=============================================================================*/
+
+    .spirit-nav
+    {
+        text-align: right;
+    }
+    
+    .spirit-nav a
+    {
+        color: white;
+        padding-left: 0.5em;
+    }
+    
+    .spirit-nav img
+    {
+        border-width: 0px;
+    }
+
+/*=============================================================================
+    Table of contents
+=============================================================================*/
+
+    .toc
+    {
+       margin: 1pc 4% 0pc 4%;
+       padding: 0.1pc 1pc 0.1pc 1pc;
+       font-size: 80%; 
+       line-height: 1.15;
+    }
+    
+    .boost-toc
+    {
+       float: right;
+       padding: 0.5pc;
+    }
+
+/*=============================================================================
+    Tables
+=============================================================================*/
+
+    .table-title, 
+    div.table p.title
+    {
+        margin-left: 4%;
+        padding-right: 0.5em; 
+        padding-left: 0.5em;
+    }
+    
+    .informaltable table, 
+    .table table
+    {
+        width: 92%;
+        margin-left: 4%;
+        margin-right: 4%;
+    }
+    
+    div.informaltable table, 
+    div.table table
+    {
+        padding: 4px;
+    }
+    
+    /* Table Cells */
+    div.informaltable table tr td, 
+    div.table table tr td
+    {
+        padding: 0.5em;
+        text-align: left;
+        font-size: 9pt;
+    }
+
+    div.informaltable table tr th, 
+    div.table table tr th
+    {
+        padding: 0.5em 0.5em 0.5em 0.5em;
+        border: 1pt solid white;
+        font-size: 80%;
+    }
+
+/*=============================================================================
+    Blurbs
+=============================================================================*/
+
+    div.note,
+    div.tip,
+    div.important,
+    div.caution,
+    div.warning,
+    p.blurb
+    {
+        font-size: 9pt; /* A little bit smaller than the main text */
+        line-height: 1.2;
+        display: block;
+        margin: 1pc 4% 0pc 4%;
+        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+    }
+    
+    p.blurb img
+    {
+        padding: 1pt;
+    }
+
+/*=============================================================================
+    Variable Lists
+=============================================================================*/
+
+    /* Make the terms in definition lists bold */
+    div.variablelist dl dt,
+    span.term
+    {
+        font-weight: bold;
+        font-size: 10pt;
+    }
+
+    div.variablelist table tbody tr td
+    {
+        text-align: left;
+        vertical-align: top;
+        padding: 0em 2em 0em 0em;
+        font-size: 10pt;
+        margin: 0em 0em 0.5em 0em;
+        line-height: 1;
+    }
+
+    div.variablelist dl dt
+    {
+        margin-bottom: 0.2em;
+    }
+
+    div.variablelist dl dd
+    {
+        margin: 0em 0em 0.5em 2em;
+        font-size: 10pt;
+    }
+
+    div.variablelist table tbody tr td p,
+    div.variablelist dl dd p
+    {
+        margin: 0em 0em 0.5em 0em;
+        line-height: 1;
+    }
+
+/*=============================================================================
+    Misc
+=============================================================================*/
+
+    /* Title of books and articles in bibliographies */
+    span.title
+    {
+        font-style: italic;
+    }
+
+    span.underline
+    {
+        text-decoration: underline;
+    }
+
+    span.strikethrough
+    {
+        text-decoration: line-through;
+    }
+
+    /* Copyright, Legal Notice */
+    div div.legalnotice p
+    {
+        text-align: left
+    }
+
+/*=============================================================================
+    Colors
+=============================================================================*/
+
+    @media screen
+    {
+    /* Links */
+        a
+        {
+            color: #005a9c;
+        }
+    
+        a:visited
+        {
+            color: #9c5a9c;
+        }
+
+        h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
+        h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
+        h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
+        {
+            text-decoration: none; /* no underline */
+            color: #000000;
+        }
+    
+    /* Syntax Highlighting */
+        .keyword        { color: #0000AA; }
+        .identifier     { color: #000000; }
+        .special        { color: #707070; }
+        .preprocessor   { color: #402080; }
+        .char           { color: teal; }
+        .comment        { color: #800000; }
+        .string         { color: teal; }
+        .number         { color: teal; }
+        .white_bkd      { background-color: #FFFFFF; }
+        .dk_grey_bkd    { background-color: #999999; }
+    
+    /* Copyright, Legal Notice */
+        .copyright      
+        { 
+            color: #666666; 
+            font-size: small; 
+        }
+    
+        div div.legalnotice p
+        {
+            color: #666666;
+        }
+    
+    /* Program listing */
+        pre.synopsis
+        {
+            border: 1px solid #DCDCDC;
+        }
+    
+        .programlisting, 
+        .screen
+        {
+            border: 1px solid #DCDCDC;
+        }
+    
+        td .programlisting, 
+        td .screen
+        {
+            border: 0px solid #DCDCDC;
+        }
+    
+    /* Blurbs */
+        div.note,
+        div.tip,
+        div.important,
+        div.caution,
+        div.warning,
+        p.blurb
+        {
+            border: 1px solid #DCDCDC;
+        }
+    
+    /* Table of contents */
+        .toc
+        {
+            border: 1px solid #DCDCDC;
+        }
+    
+    /* Tables */
+        div.informaltable table tr td, 
+        div.table table tr td
+        {
+            border: 1px solid #DCDCDC;
+        }
+    
+        div.informaltable table tr th, 
+        div.table table tr th
+        {
+            background-color: #F0F0F0;
+            border: 1px solid #DCDCDC;
+        }
+    
+    /* Misc */
+        span.highlight
+        {
+            color: #00A000;
+        }
+    }
+    
+    @media print
+    {
+    /* Links */
+        a
+        {
+            color: black;
+        }
+    
+        a:visited
+        {
+            color: black;
+        }
+    
+        .spirit-nav
+        {
+            display: none;
+        }
+    
+    /* Program listing */
+        pre.synopsis
+        {
+            border: 1px solid gray;
+        }
+    
+        .programlisting, 
+        .screen
+        {
+            border: 1px solid gray;
+        }
+    
+        td .programlisting, 
+        td .screen
+        {
+            border: 0px solid #DCDCDC;
+        }
+    
+    /* Table of contents */
+        .toc
+        {
+            border: 1px solid gray;
+        }
+    
+        .informaltable table, 
+        .table table
+        {
+            border: 1px solid gray;
+            border-collapse: collapse;
+        }
+    
+    /* Tables */
+        div.informaltable table tr td, 
+        div.table table tr td
+        {
+            border: 1px solid gray;
+        }
+    
+        div.informaltable table tr th, 
+        div.table table tr th
+        {
+            border: 1px solid gray;
+        }
+    
+    /* Misc */
+        span.highlight
+        {
+            font-weight: bold;
+        }
+    }
Added: sandbox/libs/reflection/doc/html/index.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/index.html	2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 1. Boost.Reflection 1.0</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="next" href="boost_reflection/introduction.html" title=" Introduction">
+</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="boost_reflection/introduction.html"><img src="../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="boost_reflection"></a>Chapter 1. Boost.Reflection 1.0</h2></div>
+<div><p class="copyright">Copyright © 2007 Mariano G. Consoni, Jeremy Pack</p></div>
+<div><div class="legalnotice">
+<a name="id2555061"></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></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"> Introduction</span></dt>
+<dt><span class="section">Tutorials</span></dt>
+<dd><dl>
+<dt><span class="section"> Tutorial 1</span></dt>
+<dt><span class="section"> Tutorial 2</span></dt>
+</dl></dd>
+<dt><span class="section"> Interpreter prototype</span></dt>
+</dl>
+</div>
+</div>
+<table width="100%"><tr>
+<td align="left"><p><small>Last revised: April 30, 2007 at 12:00:00 GMT</small></p></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="boost_reflection/introduction.html"><img src="../../doc/html/images/next.png" alt="Next"></a></div>
+</body>
+</html>
Modified: sandbox/libs/reflection/doc/interpreter.qbk
==============================================================================
--- sandbox/libs/reflection/doc/interpreter.qbk	(original)
+++ sandbox/libs/reflection/doc/interpreter.qbk	2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -35,7 +35,7 @@
 Let's see the session:
 
 [table 
-[[[^Boost.Reflection example - Prototype C++ interpreter.\n
+^Boost.Reflection example - Prototype C++ interpreter.\n
 \n
 > beetle=Compact(VWBeetle)\n
 Instance [beetle] created.\n
@@ -52,7 +52,7 @@
 GrandCherokee started.\n
  --> 1\n
 > Ch.start()\n
-Instance Ch not found.\n]]]]
+Instance Ch not found.\n]
 
 In this session you could see: