|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r68364 - in sandbox/SOC/2010/phoenix3/libs/phoenix/doc: . html html/images html/phoenix html/phoenix/reference/core_mechanisms html/phoenix/reference/core_mechanisms/evaluator html/phoenix/reference/core_mechanisms/terminals html/phoenix/reference/the_language/core html/phoenix/starter_kit/composites reference starter_kit
From: thom.heller_at_[hidden]
Date: 2011-01-22 07:41:52
Author: theller
Date: 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
New Revision: 68364
URL: http://svn.boost.org/trac/boost/changeset/68364
Log:
some more doc work
Added:
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/basics.qbk (props changed)
- copied unchanged from r68288, /sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/basics.qbk
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/images/organization_alt.png (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/basics.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/organization.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/nothing.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/organisation.qbk (contents, props changed)
- copied, changed from r68288, /sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/organisation.qbk
Removed:
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/basics.qbk
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/organisation.qbk
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/composites.qbk
Text files modified:
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html | 4 +++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html | 12 ++++++------
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/_actor_.html | 10 +++++-----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/_meta_grammar_.html | 10 +++++-----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/environment.html | 12 ++++++------
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/arity.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/default_actions.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/is_nullary.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/expression.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_ext.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_vararg.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_vararg_ext.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/terminals/_custom_terminal_.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/terminals/_is_custom_terminal_.html | 8 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/arguments.html | 14 +++++++-------
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/reference.html | 10 +++++-----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/value.html | 6 +++---
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/more.html | 6 +++---
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest | 2 ++
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/organisation.qbk | 6 +-----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/phoenix3.qbk | 2 ++
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit.qbk | 9 ++++++++-
24 files changed, 100 insertions(+), 91 deletions(-)
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/images/organization_alt.png
==============================================================================
Binary file. No diff available.
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -58,6 +58,8 @@
<dt><span class="section">More</span></dt>
</dl></dd>
</dl></dd>
+<dt><span class="section">Basics</span></dt>
+<dt><span class="section">Organization</span></dt>
<dt><span class="section">Reference</span></dt>
<dd><dl>
<dt><span class="section">Core Mechanisms</span></dt>
@@ -251,7 +253,7 @@
</h3>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: January 19, 2011 at 14:17:21 GMT</small></p></td>
+<td align="left"><p><small>Last revised: January 20, 2011 at 12:17:34 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/basics.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/basics.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Basics</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="prev" href="starter_kit/composites/more.html" title="More">
+<link rel="next" href="organization.html" title="Organization">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="starter_kit/composites/more.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="organization.html"><img src="../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="phoenix.basics"></a><a class="link" href="basics.html" title="Basics">Basics</a>
+</h2></div></div></div>
+<p>
+ Almost everything is a function in the Phoenix library that can be evaluated
+ as <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">a1</span><span class="special">,</span> <span class="identifier">a2</span><span class="special">,</span> <span class="special">...,</span> a<span class="emphasis"><em>n</em></span><span class="special">)</span></code>, where <span class="emphasis"><em>n</em></span> is the function's
+ arity, or number of arguments that the function expects. Operators are also
+ functions. For example, <code class="computeroutput"><span class="identifier">a</span> <span class="special">+</span> <span class="identifier">b</span></code> is just
+ a function with arity == 2 (or binary). <code class="computeroutput"><span class="identifier">a</span>
+ <span class="special">+</span> <span class="identifier">b</span></code>
+ is the same as <code class="computeroutput"><span class="identifier">add</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span></code>, <code class="computeroutput"><span class="identifier">a</span>
+ <span class="special">+</span> <span class="identifier">b</span> <span class="special">+</span> <span class="identifier">c</span></code> is the
+ same as <code class="computeroutput"><span class="identifier">add</span><span class="special">(</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">),</span>
+ <span class="identifier">c</span><span class="special">)</span></code>.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ Amusingly, functions may even return functions. We shall see what this means
+ in a short while.
+ </p></td></tr>
+</table></div>
+<a name="phoenix.basics.partial_function_application"></a><h4>
+<a name="id2826698"></a>
+ <a class="link" href="basics.html#phoenix.basics.partial_function_application">Partial Function
+ Application</a>
+ </h4>
+<p>
+ Think of a function as a black box. You pass arguments and it returns something
+ back. The figure below depicts the typical scenario.
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/fbox.png" alt="fbox"></span>
+ </p>
+<p>
+ A fully evaluated function is one in which all the arguments are given. All
+ functions in plain C++ are fully evaluated. When you call the <code class="computeroutput"><span class="identifier">sin</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> function, you have to pass a number x. The
+ function will return a result in return: the sin of x. When you call the <code class="computeroutput"><span class="identifier">add</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">)</span></code>
+ function, you have to pass two numbers x and y. The function will return the
+ sum of the two numbers. The figure below is a fully evaluated <code class="computeroutput"><span class="identifier">add</span></code> function.
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/adder.png" alt="adder"></span>
+ </p>
+<p>
+ A partially applied function, on the other hand, is one in which not all the
+ arguments are supplied. If we are able to partially apply the function <code class="computeroutput"><span class="identifier">add</span></code> above, we may pass only the first argument.
+ In doing so, the function does not have all the required information it needs
+ to perform its task to compute and return a result. What it returns instead
+ is another function, a lambda function. Unlike the original <code class="computeroutput"><span class="identifier">add</span></code>
+ function which has an arity of 2, the resulting lambda function has an arity
+ of 1. Why? because we already supplied part of the input: <code class="computeroutput"><span class="number">2</span></code>
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/add2.png" alt="add2"></span>
+ </p>
+<p>
+ Now, when we shove in a number into our lambda function, it will return 2 plus
+ whatever we pass in. The lambda function essentially remembers 1) the original
+ function, <code class="computeroutput"><span class="identifier">add</span></code>, and 2) the partial
+ input, 2. The figure below illustrates a case where we pass 3 to our lambda
+ function, which then returns 5:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/add2_call.png" alt="add2_call"></span>
+ </p>
+<p>
+ Obviously, partially applying the <code class="computeroutput"><span class="identifier">add</span></code>
+ function, as we see above, cannot be done directly in C++ where we are expected
+ to supply all the arguments that a function expects. That's where the Phoenix
+ library comes in. The library provides the facilities to do partial function
+ application. And even more, with Phoenix, these resulting functions won't be
+ black boxes anymore.
+ </p>
+<a name="phoenix.basics.stl_and_higher_order_functions"></a><h4>
+<a name="id2826940"></a>
+ <a class="link" href="basics.html#phoenix.basics.stl_and_higher_order_functions">STL and higher
+ order functions</a>
+ </h4>
+<p>
+ So, what's all the fuss? What makes partial function application so useful?
+ Recall our original example in the <a class="link" href="starter_kit/composites/lazy_operators.html" title="Lazy Operators">previous
+ section</a>:
+ </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">find_if</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)</span>
+</pre>
+<p>
+ The expression <code class="computeroutput"><span class="identifier">arg1</span> <span class="special">%</span>
+ <span class="number">2</span> <span class="special">==</span> <span class="number">1</span></code> evaluates to a lambda function. <code class="computeroutput"><span class="identifier">arg1</span></code> is a placeholder for an argument to
+ be supplied later. Hence, since there's only one unsupplied argument, the lambda
+ function has an arity 1. It just so happens that <code class="computeroutput"><span class="identifier">find_if</span></code>
+ supplies the unsupplied argument as it loops from <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span></code>
+ to <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code>.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ Higher order functions are functions which can take other functions as arguments,
+ and may also return functions as results. Higher order functions are functions
+ that are treated like any other objects and can be used as arguments and
+ return values from functions.
+ </p></td></tr>
+</table></div>
+<a name="phoenix.basics.lazy_evaluation"></a><h4>
+<a name="id2827168"></a>
+ <a class="link" href="basics.html#phoenix.basics.lazy_evaluation">Lazy Evaluation</a>
+ </h4>
+<p>
+ In Phoenix, to put it more accurately, function evaluation has two stages:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+ Partial application
+ </li>
+<li>
+ Final evaluation
+ </li>
+</ol></div>
+<p>
+ The first stage is handled by a set of generator functions. These are your
+ front ends (in the client's perspective). These generators create (through
+ partial function application), higher order functions that can be passed on
+ just like any other function pointer or function object. The second stage,
+ the actual function call, can be invoked or executed anytime in the future,
+ or not at all; hence <span class="emphasis"><em>"lazy"</em></span>.
+ </p>
+<p>
+ If we look more closely, the first step involves partial function application:
+ </p>
+<pre class="programlisting"><span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span>
+</pre>
+<p>
+ The second step is the actual function invocation (done inside the <code class="computeroutput"><span class="identifier">find_if</span></code> function. These are the back-ends
+ (often, the final invocation is never actually seen by the client). In our
+ example, the <code class="computeroutput"><span class="identifier">find_if</span></code>, if we
+ take a look inside, we'll see something like:
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Predicate</span><span class="special">></span>
+<span class="identifier">InputIterator</span>
+<span class="identifier">find_if</span><span class="special">(</span><span class="identifier">InputIterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">InputIterator</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">Predicate</span> <span class="identifier">pred</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">while</span> <span class="special">(</span><span class="identifier">first</span> <span class="special">!=</span> <span class="identifier">last</span> <span class="special">&&</span> <span class="special">!</span><span class="identifier">pred</span><span class="special">(*</span><span class="identifier">first</span><span class="special">))</span> <span class="comment">// <--- The lambda function is called here
+</span> <span class="special">++</span><span class="identifier">first</span><span class="special">;</span> <span class="comment">// passing in *first
+</span> <span class="keyword">return</span> <span class="identifier">first</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ Again, typically, we, as clients, see only the first step. However, in this
+ document and in the examples and tests provided, don't be surprised to see
+ the first and second steps juxtaposed in order to illustrate the complete semantics
+ of Phoenix expressions. Examples:
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span>
+<span class="keyword">int</span> <span class="identifier">y</span> <span class="special">=</span> <span class="number">2</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="special">(</span><span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)(</span><span class="identifier">x</span><span class="special">)</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="comment">// prints 1 or true
+</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="special">(</span><span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)(</span><span class="identifier">y</span><span class="special">)</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="comment">// prints 0 or false
+</span></pre>
+<a name="phoenix.basics.forwarding_function_problem"></a><h4>
+<a name="id2827727"></a>
+ <a class="link" href="basics.html#phoenix.basics.forwarding_function_problem">Forwarding Function
+ Problem</a>
+ </h4>
+<p>
+ Usually, we, as clients, write the call-back functions while libraries (such
+ as STL) provide the callee (e.g. <code class="computeroutput"><span class="identifier">find_if</span></code>).
+ In case the role is reversed, e.g. if you have to write an STL algorithm that
+ takes in a predicate, or develop a GUI library that accepts event handlers,
+ you have to be aware of a little known problem in C++ called the "<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm" target="_top">Forwarding
+ Function Problem</a>".
+ </p>
+<p>
+ Look again at the code above:
+ </p>
+<pre class="programlisting"><span class="special">(</span><span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)(</span><span class="identifier">x</span><span class="special">)</span>
+</pre>
+<p>
+ Notice that, in the second-stage (the final evaluation), we used a variable
+ <code class="computeroutput"><span class="identifier">x</span></code>.
+ </p>
+<p>
+ In Phoenix we emulated perfect forwarding through preprocessor macros generating
+ code to allow const and non-const references.
+ </p>
+<p>
+ We generate these second-stage overloads for Phoenix expression up to <code class="computeroutput"><span class="identifier">PHOENIX_PERFECT_FORWARD_LIMIT</span></code>
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ You can set <code class="computeroutput"><span class="identifier">PHOENIX_PERFECT_FORWARD_LIMIT</span></code>,
+ the predefined maximum perfect forward arguments an actor can take. By default,
+ <code class="computeroutput"><span class="identifier">PHOENIX_PERFECT_FORWARDLIMIT</span></code>
+ is set to 3.
+ </p></td></tr>
+</table></div>
+<a name="phoenix.basics.polymorphic_functions"></a><h4>
+<a name="id2827884"></a>
+ <a class="link" href="basics.html#phoenix.basics.polymorphic_functions">Polymorphic Functions</a>
+ </h4>
+<p>
+ Unless otherwise noted, Phoenix generated functions are fully polymorphic.
+ For instance, the <code class="computeroutput"><span class="identifier">add</span></code> example
+ above can apply to integers, floating points, user defined complex numbers
+ or even strings. Example:
+ </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">h</span><span class="special">(</span><span class="string">"Hello"</span><span class="special">);</span>
+<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">w</span> <span class="special">=</span> <span class="string">" World"</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">add</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">)(</span><span class="identifier">h</span><span class="special">,</span> <span class="identifier">w</span><span class="special">);</span>
+</pre>
+<p>
+ evaluates to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"Hello
+ World"</span><span class="special">)</span></code>. The observant
+ reader might notice that this function call in fact takes in heterogeneous
+ arguments where <code class="computeroutput"><span class="identifier">arg1</span></code> is of
+ type <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> and <code class="computeroutput"><span class="identifier">arg2</span></code>
+ is of type <code class="computeroutput"><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span></code>. <code class="computeroutput"><span class="identifier">add</span></code>
+ still works because the C++ standard library allows the expression <code class="computeroutput"><span class="identifier">a</span> <span class="special">+</span> <span class="identifier">b</span></code>
+ where <code class="computeroutput"><span class="identifier">a</span></code> is a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>
+ and <code class="computeroutput"><span class="identifier">b</span></code> is a <code class="computeroutput"><span class="keyword">char</span>
+ <span class="keyword">const</span><span class="special">*</span></code>.
+ </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 © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<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="starter_kit/composites/more.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="organization.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/organization.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/organization.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -0,0 +1,353 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Organization</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="prev" href="basics.html" title="Basics">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="basics.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../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="phoenix.organization"></a><a class="link" href="organization.html" title="Organization">Organization</a>
+</h2></div></div></div>
+<p>
+ Care and attention to detail was given, painstakingly, to the design and implementation
+ of Phoenix.
+ </p>
+<p>
+ The library is organized in four layers:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/organization.png" alt="organization"></span>
+ </p>
+<p>
+ The modules are orthogonal, with no cyclic dependencies. Lower layers do not
+ depend on higher layers. Modules in a layer do not depend on other modules
+ in the same layer. This means, for example, that Bind can be completely discarded
+ if it is not required; or one could perhaps take out Operator and Statement
+ and just use Function, which may be desirable in a pure FP application.
+ </p>
+<p>
+ The library has grown from the original Phoenix but still comprises only header
+ files. There are no object files to link against.
+ </p>
+<a name="phoenix.organization.core"></a><h3>
+<a name="id2828280"></a>
+ <a class="link" href="organization.html#phoenix.organization.core">Core</a>
+ </h3>
+<p>
+ The lowest two layers comprise the core.
+ </p>
+<p>
+ The <a class="link" href="../"><code class="computeroutput"><span class="identifier">Actor</span></code></a>
+ is the main concept behind the library. Lazy functions are abstracted as actors.
+ There are only 2 kinds of actors:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+ Primitives
+ </li>
+<li>
+ Composites
+ </li>
+</ol></div>
+<p>
+ Primitives provide the basic building blocks of functionality within Phoenix.
+ Composites are used to combine these primitives together to provide more powerful
+ functionality.
+ </p>
+<p>
+ Composites are composed of zero or more actors. Each actor in a composite can
+ again be another composite.
+ </p>
+<div class="table">
+<a name="id2828347"></a><p class="title"><b>Table 1.2. Modules</b></p>
+<div class="table-contents"><table class="table" summary="Modules">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Module
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ Function
+ </p>
+ </td>
+<td>
+ <p>
+ Lazy functions support (e.g. <code class="computeroutput"><span class="identifier">add</span></code>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Operator
+ </p>
+ </td>
+<td>
+ <p>
+ Lazy operators support (e.g. <code class="computeroutput"><span class="special">+</span></code>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Statement
+ </p>
+ </td>
+<td>
+ <p>
+ Lazy statements (e.g. <code class="computeroutput"><span class="identifier">if_</span></code>,
+ <code class="computeroutput"><span class="identifier">while_</span></code>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Object
+ </p>
+ </td>
+<td>
+ <p>
+ Lazy casts (e.g. <code class="computeroutput"><span class="identifier">static_cast_</span></code>),
+ object creation destruction (e.g. <code class="computeroutput"><span class="identifier">new_</span></code>,
+ <code class="computeroutput"><span class="identifier">delete_</span></code>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Scope
+ </p>
+ </td>
+<td>
+ <p>
+ Support for scopes, local variables and lambda-lambda
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Bind
+ </p>
+ </td>
+<td>
+ <p>
+ Lazy functions from free functions, member functions or member variables.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ STL Container
+ </p>
+ </td>
+<td>
+ <p>
+ Set of predefined "lazy" functions that work on STL containers
+ and sequences (e.g. <code class="computeroutput"><span class="identifier">push_back</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ STL Algorithm
+ </p>
+ </td>
+<td>
+ <p>
+ Set of predefined "lazy" versions of the STL algorithms
+ (e.g. <code class="computeroutput"><span class="identifier">find_if</span></code>).
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+ Each module is defined in a header file with the same name. For example, the
+ core module is defined in <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>.
+ </p>
+<div class="table">
+<a name="id2828659"></a><p class="title"><b>Table 1.3. Includes</b></p>
+<div class="table-contents"><table class="table" summary="Includes">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Module
+ </p>
+ </th>
+<th>
+ <p>
+ File
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ Core
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Function
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Operator
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="keyword">operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Statement
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">statement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Object
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Scope
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">scope</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Bind
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Container
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Algorithm
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/tip.png" alt="tip"></span> Finer grained include files are available per feature;
+ see the succeeding sections.
+ </p>
+</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 © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<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="basics.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -7,14 +7,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../index.html" title="Chapter 1. Phoenix 3.0">
-<link rel="prev" href="starter_kit/composites/more.html" title="More">
+<link rel="prev" href="organization.html" title="Organization">
<link rel="next" href="reference/core_mechanisms.html" title="Core Mechanisms">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="starter_kit/composites/more.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference/core_mechanisms.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="organization.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference/core_mechanisms.html"><img src="../images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -107,7 +107,7 @@
</dl>
</div>
<a name="phoenix.reference.concepts"></a><h4>
-<a name="id2826577"></a>
+<a name="id2829420"></a>
<a class="link" href="reference.html#phoenix.reference.concepts">Concepts</a>
</h4>
<p>
@@ -115,14 +115,14 @@
their meanings consider the following definitions.
</p>
<a name="phoenix.reference.phoenix_actor"></a><h4>
-<a name="id2826599"></a>
+<a name="id2829442"></a>
<a class="link" href="reference.html#phoenix.reference.phoenix_actor">Phoenix Actor</a>
</h4>
<p>
A Phoenix Actor is the C++ Expression that is generated by the Phoenix Generators.
</p>
<a name="phoenix.reference.phoenix_generator"></a><h4>
-<a name="id2826621"></a>
+<a name="id2829464"></a>
<a class="link" href="reference.html#phoenix.reference.phoenix_generator">Phoenix Generator</a>
</h4>
<p>
@@ -150,7 +150,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="starter_kit/composites/more.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference/core_mechanisms.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="organization.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference/core_mechanisms.html"><img src="../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/_actor_.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/_actor_.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/_actor_.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,7 +21,7 @@
<a name="phoenix.reference.core_mechanisms._actor_"></a><a class="link" href="_actor_.html" title="actor"><code class="computeroutput"><span class="identifier">actor</span></code></a>
</h4></div></div></div>
<a name="phoenix.reference.core_mechanisms._actor_.description"></a><h6>
-<a name="id2826699"></a>
+<a name="id2829542"></a>
<a class="link" href="_actor_.html#phoenix.reference.core_mechanisms._actor_.description">Description</a>
</h6>
<p>
@@ -30,7 +30,7 @@
Templates and provides various operator() overloads.
</p>
<a name="phoenix.reference.core_mechanisms._actor_.synopsis"></a><h6>
-<a name="id2826733"></a>
+<a name="id2829577"></a>
<a class="link" href="_actor_.html#phoenix.reference.core_mechanisms._actor_.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span>
@@ -53,7 +53,7 @@
<span class="keyword">struct</span> <span class="identifier">actor</span><span class="special">;</span>
</pre>
<a name="phoenix.reference.core_mechanisms._actor_.template_parameters"></a><h6>
-<a name="id2826990"></a>
+<a name="id2829833"></a>
<a class="link" href="_actor_.html#phoenix.reference.core_mechanisms._actor_.template_parameters">Template
Parameters</a>
</h6>
@@ -115,7 +115,7 @@
</dl>
</div>
<a name="phoenix.reference.core_mechanisms._actor_.expression_semantics"></a><h6>
-<a name="id2827166"></a>
+<a name="id2830009"></a>
<a class="link" href="_actor_.html#phoenix.reference.core_mechanisms._actor_.expression_semantics">Expression
Semantics</a>
</h6>
@@ -184,7 +184,7 @@
[header Header] #include <boost/phoenix/core/actor.hpp>
</p>
<a name="phoenix.reference.core_mechanisms._actor_.example"></a><h6>
-<a name="id2827478"></a>
+<a name="id2830321"></a>
<a class="link" href="_actor_.html#phoenix.reference.core_mechanisms._actor_.example">Example</a>
</h6>
<p>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/_meta_grammar_.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/_meta_grammar_.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/_meta_grammar_.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,7 +21,7 @@
<a name="phoenix.reference.core_mechanisms._meta_grammar_"></a><a class="link" href="_meta_grammar_.html" title="meta_grammar"><code class="computeroutput"><span class="identifier">meta_grammar</span></code></a>
</h4></div></div></div>
<a name="phoenix.reference.core_mechanisms._meta_grammar_.description"></a><h6>
-<a name="id2827534"></a>
+<a name="id2830378"></a>
<a class="link" href="_meta_grammar_.html#phoenix.reference.core_mechanisms._meta_grammar_.description">Description</a>
</h6>
<p>
@@ -30,7 +30,7 @@
grammar rules. It is used to define what valid Phoenix Expressions are.
</p>
<a name="phoenix.reference.core_mechanisms._meta_grammar_.synopsis"></a><h6>
-<a name="id2827573"></a>
+<a name="id2830417"></a>
<a class="link" href="_meta_grammar_.html#phoenix.reference.core_mechanisms._meta_grammar_.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">meta_grammar</span>
@@ -43,7 +43,7 @@
<span class="special">};</span>
</pre>
<a name="phoenix.reference.core_mechanisms._meta_grammar_.template_parameters"></a><h6>
-<a name="id2827753"></a>
+<a name="id2830597"></a>
<a class="link" href="_meta_grammar_.html#phoenix.reference.core_mechanisms._meta_grammar_.template_parameters">Template
Parameters</a>
</h6>
@@ -78,7 +78,7 @@
</tr></tbody>
</table></div>
<a name="phoenix.reference.core_mechanisms._meta_grammar_.expression_semantics"></a><h6>
-<a name="id2827835"></a>
+<a name="id2830677"></a>
<a class="link" href="_meta_grammar_.html#phoenix.reference.core_mechanisms._meta_grammar_.expression_semantics">Expression
Semantics</a>
</h6>
@@ -133,7 +133,7 @@
[header Header] #include <boost/phoenix/core/meta_grammar.hpp>
</p>
<a name="phoenix.reference.core_mechanisms._meta_grammar_.example"></a><h6>
-<a name="id2828013"></a>
+<a name="id2830857"></a>
<a class="link" href="_meta_grammar_.html#phoenix.reference.core_mechanisms._meta_grammar_.example">Example</a>
</h6>
<pre class="programlisting"><span class="comment">// Adding terminals to the set of valid Phoenix expressions
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/environment.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/environment.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/environment.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,7 +21,7 @@
<a name="phoenix.reference.core_mechanisms.environment"></a><a class="link" href="environment.html" title="environment"><code class="computeroutput"><span class="identifier">environment</span></code></a>
</h4></div></div></div>
<a name="phoenix.reference.core_mechanisms.environment.description"></a><h6>
-<a name="id2828498"></a>
+<a name="id2831342"></a>
<a class="link" href="environment.html#phoenix.reference.core_mechanisms.environment.description">Description</a>
</h6>
<p>
@@ -29,7 +29,7 @@
This environment is a Fusion Random Access Sequences.
</p>
<a name="phoenix.reference.core_mechanisms.environment.synopsis"></a><h6>
-<a name="id2828523"></a>
+<a name="id2831366"></a>
<a class="link" href="environment.html#phoenix.reference.core_mechanisms.environment.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span>
@@ -52,23 +52,23 @@
<span class="keyword">struct</span> <span class="identifier">_actions</span><span class="special">;</span>
</pre>
<a name="phoenix.reference.core_mechanisms.environment.template_parameter"></a><h6>
-<a name="id2828817"></a>
+<a name="id2831660"></a>
<a class="link" href="environment.html#phoenix.reference.core_mechanisms.environment.template_parameter">Template
Parameter</a>
</h6>
<a name="phoenix.reference.core_mechanisms.environment.expression_semantics"></a><h6>
-<a name="id2828837"></a>
+<a name="id2831680"></a>
<a class="link" href="environment.html#phoenix.reference.core_mechanisms.environment.expression_semantics">Expression
Semantics</a>
</h6>
<a name="phoenix.reference.core_mechanisms.environment.header"></a><h6>
-<a name="id2828857"></a>
+<a name="id2831700"></a>
<a class="link" href="environment.html#phoenix.reference.core_mechanisms.environment.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">environment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<a name="phoenix.reference.core_mechanisms.environment.examples"></a><h6>
-<a name="id2828932"></a>
+<a name="id2831776"></a>
<a class="link" href="environment.html#phoenix.reference.core_mechanisms.environment.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -26,7 +26,7 @@
<dt><span class="section">arity
</span></dt>
</dl></div>
<a name="phoenix.reference.core_mechanisms.evaluator.description"></a><h6>
-<a name="id2828972"></a>
+<a name="id2831816"></a>
<a class="link" href="evaluator.html#phoenix.reference.core_mechanisms.evaluator.description">Description</a>
</h6>
<p>
@@ -34,13 +34,13 @@
for evaluating Phoenix expressions.
</p>
<a name="phoenix.reference.core_mechanisms.evaluator.synopsis"></a><h6>
-<a name="id2829004"></a>
+<a name="id2831848"></a>
<a class="link" href="evaluator.html#phoenix.reference.core_mechanisms.evaluator.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">evaluator</span><span class="special">;</span>
</pre>
<a name="phoenix.reference.core_mechanisms.evaluator.expression_semantics"></a><h6>
-<a name="id2829043"></a>
+<a name="id2831886"></a>
<a class="link" href="evaluator.html#phoenix.reference.core_mechanisms.evaluator.expression_semantics">Expression
Semantics</a>
</h6>
@@ -80,7 +80,7 @@
[header Header] #include <boost/phoenix/core/meta_grammar.hpp>
</p>
<a name="phoenix.reference.core_mechanisms.evaluator.examples"></a><h6>
-<a name="id2829169"></a>
+<a name="id2832012"></a>
<a class="link" href="evaluator.html#phoenix.reference.core_mechanisms.evaluator.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/arity.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/arity.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/arity.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,15 +21,15 @@
<a name="phoenix.reference.core_mechanisms.evaluator.arity"></a><a class="link" href="arity.html" title="arity"><code class="computeroutput"><span class="identifier">arity</span></code></a>
</h5></div></div></div>
<a name="phoenix.reference.core_mechanisms.evaluator.arity.description"></a><h6>
-<a name="id2829425"></a>
+<a name="id2832269"></a>
<a class="link" href="arity.html#phoenix.reference.core_mechanisms.evaluator.arity.description">Description</a>
</h6>
<a name="phoenix.reference.core_mechanisms.evaluator.arity.synopsis"></a><h6>
-<a name="id2829444"></a>
+<a name="id2832288"></a>
<a class="link" href="arity.html#phoenix.reference.core_mechanisms.evaluator.arity.synopsis">Synopsis</a>
</h6>
<a name="phoenix.reference.core_mechanisms.evaluator.arity.expression_semantics"></a><h6>
-<a name="id2829464"></a>
+<a name="id2832307"></a>
<a class="link" href="arity.html#phoenix.reference.core_mechanisms.evaluator.arity.expression_semantics">Expression
Semantics</a>
</h6>
@@ -37,7 +37,7 @@
[header Header]
</p>
<a name="phoenix.reference.core_mechanisms.evaluator.arity.examples"></a><h6>
-<a name="id2829487"></a>
+<a name="id2832331"></a>
<a class="link" href="arity.html#phoenix.reference.core_mechanisms.evaluator.arity.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/default_actions.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/default_actions.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/default_actions.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,15 +21,15 @@
<a name="phoenix.reference.core_mechanisms.evaluator.default_actions"></a><a class="link" href="default_actions.html" title="default_actions"><code class="computeroutput"><span class="identifier">default_actions</span></code></a>
</h5></div></div></div>
<a name="phoenix.reference.core_mechanisms.evaluator.default_actions.description"></a><h6>
-<a name="id2829210"></a>
+<a name="id2832053"></a>
<a class="link" href="default_actions.html#phoenix.reference.core_mechanisms.evaluator.default_actions.description">Description</a>
</h6>
<a name="phoenix.reference.core_mechanisms.evaluator.default_actions.synopsis"></a><h6>
-<a name="id2829230"></a>
+<a name="id2832074"></a>
<a class="link" href="default_actions.html#phoenix.reference.core_mechanisms.evaluator.default_actions.synopsis">Synopsis</a>
</h6>
<a name="phoenix.reference.core_mechanisms.evaluator.default_actions.expression_semantics"></a><h6>
-<a name="id2829251"></a>
+<a name="id2832094"></a>
<a class="link" href="default_actions.html#phoenix.reference.core_mechanisms.evaluator.default_actions.expression_semantics">Expression
Semantics</a>
</h6>
@@ -37,7 +37,7 @@
[header Header]
</p>
<a name="phoenix.reference.core_mechanisms.evaluator.default_actions.examples"></a><h6>
-<a name="id2829276"></a>
+<a name="id2832119"></a>
<a class="link" href="default_actions.html#phoenix.reference.core_mechanisms.evaluator.default_actions.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/is_nullary.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/is_nullary.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/evaluator/is_nullary.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,15 +21,15 @@
<a name="phoenix.reference.core_mechanisms.evaluator.is_nullary"></a><a class="link" href="is_nullary.html" title="is_nullary"><code class="computeroutput"><span class="identifier">is_nullary</span></code></a>
</h5></div></div></div>
<a name="phoenix.reference.core_mechanisms.evaluator.is_nullary.description"></a><h6>
-<a name="id2829320"></a>
+<a name="id2832164"></a>
<a class="link" href="is_nullary.html#phoenix.reference.core_mechanisms.evaluator.is_nullary.description">Description</a>
</h6>
<a name="phoenix.reference.core_mechanisms.evaluator.is_nullary.synopsis"></a><h6>
-<a name="id2829339"></a>
+<a name="id2832183"></a>
<a class="link" href="is_nullary.html#phoenix.reference.core_mechanisms.evaluator.is_nullary.synopsis">Synopsis</a>
</h6>
<a name="phoenix.reference.core_mechanisms.evaluator.is_nullary.expression_semantics"></a><h6>
-<a name="id2829359"></a>
+<a name="id2832203"></a>
<a class="link" href="is_nullary.html#phoenix.reference.core_mechanisms.evaluator.is_nullary.expression_semantics">Expression
Semantics</a>
</h6>
@@ -37,7 +37,7 @@
[header Header]
</p>
<a name="phoenix.reference.core_mechanisms.evaluator.is_nullary.examples"></a><h6>
-<a name="id2829383"></a>
+<a name="id2832226"></a>
<a class="link" href="is_nullary.html#phoenix.reference.core_mechanisms.evaluator.is_nullary.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/expression.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/expression.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/expression.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,15 +21,15 @@
<a name="phoenix.reference.core_mechanisms.expression"></a><a class="link" href="expression.html" title="expression"><code class="computeroutput"><span class="identifier">expression</span></code></a>
</h4></div></div></div>
<a name="phoenix.reference.core_mechanisms.expression.description"></a><h6>
-<a name="id2829530"></a>
+<a name="id2832373"></a>
<a class="link" href="expression.html#phoenix.reference.core_mechanisms.expression.description">Description</a>
</h6>
<a name="phoenix.reference.core_mechanisms.expression.synopsis"></a><h6>
-<a name="id2829549"></a>
+<a name="id2832392"></a>
<a class="link" href="expression.html#phoenix.reference.core_mechanisms.expression.synopsis">Synopsis</a>
</h6>
<a name="phoenix.reference.core_mechanisms.expression.expression_semantics"></a><h6>
-<a name="id2829568"></a>
+<a name="id2832411"></a>
<a class="link" href="expression.html#phoenix.reference.core_mechanisms.expression.expression_semantics">Expression
Semantics</a>
</h6>
@@ -37,7 +37,7 @@
[header Header]
</p>
<a name="phoenix.reference.core_mechanisms.expression.examples"></a><h6>
-<a name="id2829591"></a>
+<a name="id2832435"></a>
<a class="link" href="expression.html#phoenix.reference.core_mechanisms.expression.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,15 +21,15 @@
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression"></a><a class="link" href="phoenix_define_expression.html" title="PHOENIX_DEFINE_EXPRESSION"><code class="computeroutput"><span class="identifier">PHOENIX_DEFINE_EXPRESSION</span></code></a>
</h4></div></div></div>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression.description"></a><h6>
-<a name="id2829633"></a>
+<a name="id2832477"></a>
<a class="link" href="phoenix_define_expression.html#phoenix.reference.core_mechanisms.phoenix_define_expression.description">Description</a>
</h6>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression.synopsis"></a><h6>
-<a name="id2829654"></a>
+<a name="id2832497"></a>
<a class="link" href="phoenix_define_expression.html#phoenix.reference.core_mechanisms.phoenix_define_expression.synopsis">Synopsis</a>
</h6>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression.expression_semantics"></a><h6>
-<a name="id2829675"></a>
+<a name="id2832518"></a>
<a class="link" href="phoenix_define_expression.html#phoenix.reference.core_mechanisms.phoenix_define_expression.expression_semantics">Expression
Semantics</a>
</h6>
@@ -37,7 +37,7 @@
[header Header]
</p>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression.examples"></a><h6>
-<a name="id2829700"></a>
+<a name="id2832544"></a>
<a class="link" href="phoenix_define_expression.html#phoenix.reference.core_mechanisms.phoenix_define_expression.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_ext.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_ext.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_ext.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,15 +21,15 @@
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_ext"></a><a class="link" href="phoenix_define_expression_ext.html" title="PHOENIX_DEFINE_EXPRESSION_EXT"><code class="computeroutput"><span class="identifier">PHOENIX_DEFINE_EXPRESSION_EXT</span></code></a>
</h4></div></div></div>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_ext.description"></a><h6>
-<a name="id2829856"></a>
+<a name="id2832700"></a>
<a class="link" href="phoenix_define_expression_ext.html#phoenix.reference.core_mechanisms.phoenix_define_expression_ext.description">Description</a>
</h6>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_ext.synopsis"></a><h6>
-<a name="id2829877"></a>
+<a name="id2832720"></a>
<a class="link" href="phoenix_define_expression_ext.html#phoenix.reference.core_mechanisms.phoenix_define_expression_ext.synopsis">Synopsis</a>
</h6>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_ext.expression_semantics"></a><h6>
-<a name="id2829898"></a>
+<a name="id2832742"></a>
<a class="link" href="phoenix_define_expression_ext.html#phoenix.reference.core_mechanisms.phoenix_define_expression_ext.expression_semantics">Expression
Semantics</a>
</h6>
@@ -37,7 +37,7 @@
[header Header]
</p>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_ext.examples"></a><h6>
-<a name="id2829924"></a>
+<a name="id2832767"></a>
<a class="link" href="phoenix_define_expression_ext.html#phoenix.reference.core_mechanisms.phoenix_define_expression_ext.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_vararg.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_vararg.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_vararg.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,15 +21,15 @@
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_vararg"></a><a class="link" href="phoenix_define_expression_vararg.html" title="PHOENIX_DEFINE_EXPRESSION_VARARG"><code class="computeroutput"><span class="identifier">PHOENIX_DEFINE_EXPRESSION_VARARG</span></code></a>
</h4></div></div></div>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_vararg.description"></a><h6>
-<a name="id2829744"></a>
+<a name="id2832588"></a>
<a class="link" href="phoenix_define_expression_vararg.html#phoenix.reference.core_mechanisms.phoenix_define_expression_vararg.description">Description</a>
</h6>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_vararg.synopsis"></a><h6>
-<a name="id2829765"></a>
+<a name="id2832609"></a>
<a class="link" href="phoenix_define_expression_vararg.html#phoenix.reference.core_mechanisms.phoenix_define_expression_vararg.synopsis">Synopsis</a>
</h6>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_vararg.expression_semantics"></a><h6>
-<a name="id2829786"></a>
+<a name="id2832630"></a>
<a class="link" href="phoenix_define_expression_vararg.html#phoenix.reference.core_mechanisms.phoenix_define_expression_vararg.expression_semantics">Expression
Semantics</a>
</h6>
@@ -37,7 +37,7 @@
[header Header]
</p>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_vararg.examples"></a><h6>
-<a name="id2829812"></a>
+<a name="id2832656"></a>
<a class="link" href="phoenix_define_expression_vararg.html#phoenix.reference.core_mechanisms.phoenix_define_expression_vararg.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_vararg_ext.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_vararg_ext.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/phoenix_define_expression_vararg_ext.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,15 +21,15 @@
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_vararg_ext"></a><a class="link" href="phoenix_define_expression_vararg_ext.html" title="PHOENIX_DEFINE_EXPRESSION_VARARG_EXT"><code class="computeroutput"><span class="identifier">PHOENIX_DEFINE_EXPRESSION_VARARG_EXT</span></code></a>
</h4></div></div></div>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_vararg_ext.description"></a><h6>
-<a name="id2829969"></a>
+<a name="id2832812"></a>
<a class="link" href="phoenix_define_expression_vararg_ext.html#phoenix.reference.core_mechanisms.phoenix_define_expression_vararg_ext.description">Description</a>
</h6>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_vararg_ext.synopsis"></a><h6>
-<a name="id2829990"></a>
+<a name="id2832833"></a>
<a class="link" href="phoenix_define_expression_vararg_ext.html#phoenix.reference.core_mechanisms.phoenix_define_expression_vararg_ext.synopsis">Synopsis</a>
</h6>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_vararg_ext.expression_semantics"></a><h6>
-<a name="id2830011"></a>
+<a name="id2832855"></a>
<a class="link" href="phoenix_define_expression_vararg_ext.html#phoenix.reference.core_mechanisms.phoenix_define_expression_vararg_ext.expression_semantics">Expression
Semantics</a>
</h6>
@@ -37,7 +37,7 @@
[header Header]
</p>
<a name="phoenix.reference.core_mechanisms.phoenix_define_expression_vararg_ext.examples"></a><h6>
-<a name="id2830038"></a>
+<a name="id2832880"></a>
<a class="link" href="phoenix_define_expression_vararg_ext.html#phoenix.reference.core_mechanisms.phoenix_define_expression_vararg_ext.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/terminals/_custom_terminal_.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/terminals/_custom_terminal_.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/terminals/_custom_terminal_.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,15 +21,15 @@
<a name="phoenix.reference.core_mechanisms.terminals._custom_terminal_"></a><a class="link" href="_custom_terminal_.html" title="custom_terminal"><code class="computeroutput"><span class="identifier">custom_terminal</span></code></a>
</h5></div></div></div>
<a name="phoenix.reference.core_mechanisms.terminals._custom_terminal_.description"></a><h6>
-<a name="id2830223"></a>
+<a name="id2833067"></a>
<a class="link" href="_custom_terminal_.html#phoenix.reference.core_mechanisms.terminals._custom_terminal_.description">Description</a>
</h6>
<a name="phoenix.reference.core_mechanisms.terminals._custom_terminal_.synopsis"></a><h6>
-<a name="id2830244"></a>
+<a name="id2833087"></a>
<a class="link" href="_custom_terminal_.html#phoenix.reference.core_mechanisms.terminals._custom_terminal_.synopsis">Synopsis</a>
</h6>
<a name="phoenix.reference.core_mechanisms.terminals._custom_terminal_.expression_semantics"></a><h6>
-<a name="id2830264"></a>
+<a name="id2833108"></a>
<a class="link" href="_custom_terminal_.html#phoenix.reference.core_mechanisms.terminals._custom_terminal_.expression_semantics">Expression
Semantics</a>
</h6>
@@ -37,7 +37,7 @@
[header Header]
</p>
<a name="phoenix.reference.core_mechanisms.terminals._custom_terminal_.examples"></a><h6>
-<a name="id2830289"></a>
+<a name="id2833133"></a>
<a class="link" href="_custom_terminal_.html#phoenix.reference.core_mechanisms.terminals._custom_terminal_.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/terminals/_is_custom_terminal_.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/terminals/_is_custom_terminal_.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core_mechanisms/terminals/_is_custom_terminal_.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,15 +21,15 @@
<a name="phoenix.reference.core_mechanisms.terminals._is_custom_terminal_"></a><a class="link" href="_is_custom_terminal_.html" title="is_custom_terminal"><code class="computeroutput"><span class="identifier">is_custom_terminal</span></code></a>
</h5></div></div></div>
<a name="phoenix.reference.core_mechanisms.terminals._is_custom_terminal_.description"></a><h6>
-<a name="id2830112"></a>
+<a name="id2832956"></a>
<a class="link" href="_is_custom_terminal_.html#phoenix.reference.core_mechanisms.terminals._is_custom_terminal_.description">Description</a>
</h6>
<a name="phoenix.reference.core_mechanisms.terminals._is_custom_terminal_.synopsis"></a><h6>
-<a name="id2830133"></a>
+<a name="id2832976"></a>
<a class="link" href="_is_custom_terminal_.html#phoenix.reference.core_mechanisms.terminals._is_custom_terminal_.synopsis">Synopsis</a>
</h6>
<a name="phoenix.reference.core_mechanisms.terminals._is_custom_terminal_.expression_semantics"></a><h6>
-<a name="id2830154"></a>
+<a name="id2832998"></a>
<a class="link" href="_is_custom_terminal_.html#phoenix.reference.core_mechanisms.terminals._is_custom_terminal_.expression_semantics">Expression
Semantics</a>
</h6>
@@ -37,7 +37,7 @@
[header Header]
</p>
<a name="phoenix.reference.core_mechanisms.terminals._is_custom_terminal_.examples"></a><h6>
-<a name="id2830179"></a>
+<a name="id2833023"></a>
<a class="link" href="_is_custom_terminal_.html#phoenix.reference.core_mechanisms.terminals._is_custom_terminal_.examples">Examples</a>
</h6>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/arguments.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/arguments.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/arguments.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -21,7 +21,7 @@
<a name="phoenix.reference.the_language.core.arguments"></a><a class="link" href="arguments.html" title="Arguments">Arguments</a>
</h5></div></div></div>
<a name="phoenix.reference.the_language.core.arguments.description"></a><h6>
-<a name="id2833131"></a>
+<a name="id2836161"></a>
<a class="link" href="arguments.html#phoenix.reference.the_language.core.arguments.description">Description</a>
</h6>
<p>
@@ -29,7 +29,7 @@
argument will be placed.
</p>
<a name="phoenix.reference.the_language.core.arguments.predefined_arguments"></a><h6>
-<a name="id2833157"></a>
+<a name="id2836189"></a>
<a class="link" href="arguments.html#phoenix.reference.the_language.core.arguments.predefined_arguments">Predefined
Arguments</a>
</h6>
@@ -49,7 +49,7 @@
</p></td></tr>
</table></div>
<a name="phoenix.reference.the_language.core.arguments.synopsis"></a><h6>
-<a name="id2833300"></a>
+<a name="id2836353"></a>
<a class="link" href="arguments.html#phoenix.reference.the_language.core.arguments.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">expression</span>
@@ -94,7 +94,7 @@
<span class="special">}</span>
</pre>
<a name="phoenix.reference.the_language.core.arguments.parameters"></a><h6>
-<a name="id2834247"></a>
+<a name="id2837348"></a>
<a class="link" href="arguments.html#phoenix.reference.the_language.core.arguments.parameters">Parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -136,7 +136,7 @@
</tr></tbody>
</table></div>
<a name="phoenix.reference.the_language.core.arguments.expression_semantics"></a><h6>
-<a name="id2834333"></a>
+<a name="id2837434"></a>
<a class="link" href="arguments.html#phoenix.reference.the_language.core.arguments.expression_semantics">Expression
Semantics</a>
</h6>
@@ -155,13 +155,13 @@
the Nth function argument. The argument placeholder acts as an
</p>
<a name="phoenix.reference.the_language.core.arguments.header"></a><h6>
-<a name="id2834427"></a>
+<a name="id2837528"></a>
<a class="link" href="arguments.html#phoenix.reference.the_language.core.arguments.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">argument</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<a name="phoenix.reference.the_language.core.arguments.example"></a><h6>
-<a name="id2834511"></a>
+<a name="id2837612"></a>
<a class="link" href="arguments.html#phoenix.reference.the_language.core.arguments.example">Example</a>
</h6>
<p>
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/nothing.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/nothing.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Nothing</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../core.html" title="Core">
+<link rel="prev" href="arguments.html" title="Arguments">
+<link rel="next" href="../../../ebnf.html" title="EBNF">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="arguments.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../../../ebnf.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.the_language.core.nothing"></a><a class="link" href="nothing.html" title="Nothing">Nothing</a>
+</h5></div></div></div>
+<p>
+ Finally, the <code class="computeroutput"><span class="identifier">expression</span><span class="special">::</span><span class="identifier">null</span><span class="special">::</span><span class="identifier">type</span></code>
+ does nothing; (a "bum", if you will :-). There's a sole <code class="computeroutput"><span class="identifier">expression</span><span class="special">::</span><span class="identifier">null</span><span class="special">::</span><span class="identifier">type</span></code> instance named "nothing".
+ This actor is actually useful in situations where we don't want to do
+ anything. (See <a class="link" href="../../../../">for_
+ Statement</a> for example).
+ </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 © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<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="arguments.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../../../ebnf.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/reference.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/reference.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/reference.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -61,7 +61,7 @@
offers a lighter alternative.
</p>
<a name="phoenix.reference.the_language.core.reference.synopsis"></a><h6>
-<a name="id2832158"></a>
+<a name="id2835091"></a>
<a class="link" href="reference.html#phoenix.reference.the_language.core.reference.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">expression</span>
@@ -84,7 +84,7 @@
<span class="identifier">cref</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<a name="phoenix.reference.the_language.core.reference.parameters"></a><h6>
-<a name="id2832486"></a>
+<a name="id2835450"></a>
<a class="link" href="reference.html#phoenix.reference.the_language.core.reference.parameters">Parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -145,7 +145,7 @@
</tbody>
</table></div>
<a name="phoenix.reference.the_language.core.reference.expression_semantics"></a><h6>
-<a name="id2832595"></a>
+<a name="id2835562"></a>
<a class="link" href="reference.html#phoenix.reference.the_language.core.reference.expression_semantics">Expression
Semantics</a>
</h6>
@@ -186,13 +186,13 @@
Automatically deduces type T
</p>
<a name="phoenix.reference.the_language.core.reference.header"></a><h6>
-<a name="id2833018"></a>
+<a name="id2836033"></a>
<a class="link" href="reference.html#phoenix.reference.the_language.core.reference.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<a name="phoenix.reference.the_language.core.reference.example"></a><h6>
-<a name="id2833094"></a>
+<a name="id2836117"></a>
<a class="link" href="reference.html#phoenix.reference.the_language.core.reference.example">Example</a>
</h6>
<p>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/value.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/value.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/the_language/core/value.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -47,7 +47,7 @@
but, as we'll see later on, there are situations where this is unavoidable.
</p>
<a name="phoenix.reference.the_language.core.value.synopsis"></a><h6>
-<a name="id2830926"></a>
+<a name="id2833770"></a>
<a class="link" href="value.html#phoenix.reference.the_language.core.value.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">expression</span>
@@ -71,7 +71,7 @@
<span class="identifier">val</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<a name="phoenix.reference.the_language.core.value.parameters"></a><h6>
-<a name="id2831223"></a>
+<a name="id2834066"></a>
<a class="link" href="value.html#phoenix.reference.the_language.core.value.parameters">Parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -135,7 +135,7 @@
</tbody>
</table></div>
<a name="phoenix.reference.the_language.core.value.expression_semantics"></a><h6>
-<a name="id2831353"></a>
+<a name="id2834197"></a>
<a class="link" href="value.html#phoenix.reference.the_language.core.value.expression_semantics">Expression
Semantics</a>
</h6>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/more.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/more.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/more.html 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -8,13 +8,13 @@
<link rel="start" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../composites.html" title="Composites">
<link rel="prev" href="lazy_functions.html" title="Lazy Functions">
-<link rel="next" href="../../reference.html" title="Reference">
+<link rel="next" href="../../basics.html" title="Basics">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="lazy_functions.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../composites.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../../reference.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="lazy_functions.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../composites.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../../basics.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
@@ -46,7 +46,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="lazy_functions.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../composites.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../../reference.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="lazy_functions.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../composites.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../../basics.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -11,6 +11,8 @@
phoenix/starter_kit/composites/construct__new__delete__casts.html
phoenix/starter_kit/composites/lazy_functions.html
phoenix/starter_kit/composites/more.html
+phoenix/basics.html
+phoenix/organization.html
phoenix/reference.html
phoenix/reference/core_mechanisms.html
phoenix/reference/core_mechanisms/_actor_.html
Copied: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/organisation.qbk (from r68288, /sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/organisation.qbk)
==============================================================================
--- /sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/organisation.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/organisation.qbk 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -30,11 +30,7 @@
The lowest two layers comprise the core.
The [link phoenix.reference.concepts.actor `Actor`] is the main concept behind the library. Lazy functions are
-abstracted as actors. There are only 2
-kinds of actors:
-
-# Primitives
-# Composites
+abstracted as actors.
Primitives provide the basic building blocks of functionality within Phoenix.
Composites are used to combine these primitives together to provide more
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/phoenix3.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/phoenix3.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/phoenix3.qbk 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -46,6 +46,8 @@
[include preface.qbk]
[include introduction.qbk]
[include starter_kit.qbk]
+[include basics.qbk]
+[include organisation.qbk]
[/include advanced.qbk]
[include reference.qbk]
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/basics.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/basics.qbk 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
+++ (empty file)
@@ -1,180 +0,0 @@
-[/==============================================================================
- Copyright (C) 2001-2010 Joel de Guzman
- Copyright (C) 2001-2005 Dan Marsden
- Copyright (C) 2001-2010 Thomas Heller
-
- 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 Basics]
-
-[def __constant_n__ /n/]
-[def __argument_n__ a/n/]
-
-Almost everything is a function in the Phoenix library that can be evaluated as
-`f(a1, a2, ..., __argument_n__)`, where __constant_n__ is the function's arity, or number of arguments that the
-function expects. Operators are also functions. For example, `a + b` is just a
-function with arity == 2 (or binary). `a + b` is the same as `add(a, b)`, `a + b
-+ c` is the same as `add(add(a, b), c)`.
-
-[note Amusingly, functions may even return functions. We shall see
-what this means in a short while.]
-
-[heading Partial Function Application]
-
-Think of a function as a black box. You pass arguments and it returns something
-back. The figure below depicts the typical scenario.
-
-[$images/fbox.png]
-
-A fully evaluated function is one in which all the arguments are given. All
-functions in plain C++ are fully evaluated. When you call the `sin(x)` function,
-you have to pass a number x. The function will return a result in return: the
-sin of x. When you call the `add(x, y)` function, you have to pass two numbers x
-and y. The function will return the sum of the two numbers. The figure below is
-a fully evaluated `add` function.
-
-[$images/adder.png]
-
-A partially applied function, on the other hand, is one in which not all the
-arguments are supplied. If we are able to partially apply the function `add`
-above, we may pass only the first argument. In doing so, the function does not
-have all the required information it needs to perform its task to compute and
-return a result. What it returns instead is another function, a lambda function.
-Unlike the original `add` function which has an arity of 2, the resulting lambda
-function has an arity of 1. Why? because we already supplied part of the input:
-`2`
-
-[$images/add2.png]
-
-Now, when we shove in a number into our lambda function, it will return 2 plus
-whatever we pass in. The lambda function essentially remembers 1) the original
-function, `add`, and 2) the partial input, 2. The figure below illustrates a
-case where we pass 3 to our lambda function, which then returns 5:
-
-[$images/add2_call.png]
-
-Obviously, partially applying the `add` function, as we see above, cannot be
-done directly in C++ where we are expected to supply all the arguments that a
-function expects. That's where the Phoenix library comes in. The library
-provides the facilities to do partial function application.
-And even more, with Phoenix, these resulting functions won't be black boxes
-anymore.
-
-[heading STL and higher order functions]
-
-So, what's all the fuss? What makes partial function application so useful?
-Recall our original example in the [link phoenix.starter_kit.composites.lazy_operators
-previous section]:
-
- std::find_if(c.begin(), c.end(), arg1 % 2 == 1)
-
-The expression `arg1 % 2 == 1` evaluates to a lambda function. `arg1` is a
-placeholder for an argument to be supplied later. Hence, since there's only one
-unsupplied argument, the lambda function has an arity 1. It just so happens that
-`find_if` supplies the unsupplied argument as it loops from `c.begin()` to
-`c.end()`.
-
-[note Higher order functions are functions which can take other
-functions as arguments, and may also return functions as results. Higher order
-functions are functions that are treated like any other objects and can be used
-as arguments and return values from functions.]
-
-[heading Lazy Evaluation]
-
-In Phoenix, to put it more accurately, function evaluation has two stages:
-
-# Partial application
-# Final evaluation
-
-The first stage is handled by a set of generator functions. These are your front
-ends (in the client's perspective). These generators create (through partial
-function application), higher order functions that can be passed on just like
-any other function pointer or function object. The second stage, the actual
-function call, can be invoked or executed anytime in the future, or not at all;
-hence /"lazy"/.
-
-If we look more closely, the first step involves partial function application:
-
- arg1 % 2 == 1
-
-The second step is the actual function invocation (done inside the `find_if`
-function. These are the back-ends (often, the final invocation is never actually
-seen by the client). In our example, the `find_if`, if we take a look inside,
-we'll see something like:
-
- template <class InputIterator, class Predicate>
- InputIterator
- find_if(InputIterator first, InputIterator last, Predicate pred)
- {
- while (first != last && !pred(*first)) // <--- The lambda function is called here
- ++first; // passing in *first
- return first;
- }
-
-Again, typically, we, as clients, see only the first step. However, in this
-document and in the examples and tests provided, don't be surprised to see the
-first and second steps juxtaposed in order to illustrate the complete semantics
-of Phoenix expressions. Examples:
-
- int x = 1;
- int y = 2;
-
- std::cout << (arg1 % 2 == 1)(x) << std::endl; // prints 1 or true
- std::cout << (arg1 % 2 == 1)(y) << std::endl; // prints 0 or false
-
-
-[heading Forwarding Function Problem]
-
-Usually, we, as clients, write the call-back functions while libraries (such as
-STL) provide the callee (e.g. `find_if`). In case the role is reversed, e.g.
-if you have to write an STL algorithm that takes in a predicate, or develop a
-GUI library that accepts event handlers, you have to be aware of a little known
-problem in C++ called the "__forwarding__".
-
-Look again at the code above:
-
- (arg1 % 2 == 1)(x)
-
-Notice that, in the second-stage (the final evaluation), we used a variable `x`.
-
-In Phoenix we emulated perfect forwarding through preprocessor macros generating
-code to allow const and non-const references.
-
-We generate these second-stage overloads for Phoenix expression up to
-`PHOENIX_PERFECT_FORWARD_LIMIT`
-
-[note You can set `PHOENIX_PERFECT_FORWARD_LIMIT`, the predefined maximum perfect
-forward arguments an actor can take. By default, `PHOENIX_PERFECT_FORWARDLIMIT`
-is set to 3.]
-
-
-[/
-Be aware that the second stage cannot accept non-const temporaries and literal
-constants. Hence, this will fail:
-
- (arg1 % 2 == 1)(123) // Error!
-
-Disallowing non-const rvalues partially solves the "__forwarding__" but
-prohibits code like above.
-]
-
-[heading Polymorphic Functions]
-
-Unless otherwise noted, Phoenix generated functions are fully polymorphic. For
-instance, the `add` example above can apply to integers, floating points, user
-defined complex numbers or even strings. Example:
-
- std::string h("Hello");
- char const* w = " World";
- std::string r = add(arg1, arg2)(h, w);
-
-evaluates to `std::string("Hello World")`. The observant reader might notice
-that this function call in fact takes in heterogeneous arguments where `arg1`
-is of type `std::string` and `arg2` is of type `char const*`. `add` still works
-because the C++ standard library allows the expression `a + b` where `a` is a
-`std::string` and `b` is a `char const*`.
-
-[endsect]
-
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/organisation.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/organisation.qbk 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
+++ (empty file)
@@ -1,82 +0,0 @@
-[/==============================================================================
- Copyright (C) 2001-2010 Joel de Guzman
- Copyright (C) 2001-2005 Dan Marsden
- Copyright (C) 2001-2010 Thomas Heller
-
- 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 Organization]
-
-Care and attention to detail was given, painstakingly, to the design and
-implementation of Phoenix.
-
-The library is organized in four layers:
-
-[$images/organization.png]
-
-The modules are orthogonal, with no cyclic dependencies.
-Lower layers do not depend on higher layers. Modules in a layer do not depend on other modules in the same layer.
-This means, for example, that Bind can be completely discarded if it is
-not required; or one could perhaps take out Operator and Statement and just use Function,
-which may be desirable in a pure FP application.
-
-The library has grown from the original Phoenix but still comprises only
-header files. There are no object files to link against.
-
-[h2 Core]
-
-The lowest two layers comprise the core.
-
-The [link phoenix.reference.concepts.actor `Actor`] is the main concept behind the library. Lazy functions are
-abstracted as actors. There are only 2
-kinds of actors:
-
-# Primitives
-# Composites
-
-Primitives provide the basic building blocks of functionality within Phoenix.
-Composites are used to combine these primitives together to provide more
-powerful functionality.
-
-Composites are composed of zero or more actors. Each actor in a composite can
-again be another composite.
-
-[table Modules
- [[Module] [Description]]
- [[Function] [Lazy functions support (e.g. `add`)]]
- [[Operator] [Lazy operators support (e.g. `+`)]]
- [[Statement] [Lazy statements (e.g. `if_`, `while_`)]]
- [[Object] [Lazy casts (e.g. `static_cast_`),
- object creation destruction (e.g.
- `new_`, `delete_`)]]
- [[Scope] [Support for scopes, local variables and lambda-lambda]]
- [[Bind] [Lazy functions from free functions, member functions or member variables.]]
- [[STL Container] [Set of predefined "lazy" functions that work on STL
- containers and sequences (e.g. `push_back`).]]
- [[STL Algorithm] [Set of predefined "lazy" versions of the STL algorithms
- (e.g. `find_if`).]]
-]
-
-Each module is defined in a header file with the same name. For example,
-the core module is defined in `<boost/phoenix/core.hpp>`.
-
-[table Includes
- [[Module] [File]]
- [[Core] [`#include <boost/phoenix/core.hpp>`]]
- [[Function] [`#include <boost/phoenix/function.hpp>`]]
- [[Operator] [`#include <boost/phoenix/operator.hpp>`]]
- [[Statement] [`#include <boost/phoenix/statement.hpp>`]]
- [[Object] [`#include <boost/phoenix/object.hpp>`]]
- [[Scope] [`#include <boost/phoenix/scope.hpp>`]]
- [[Bind] [`#include <boost/phoenix/bind.hpp>`]]
- [[Container] [`#include <boost/phoenix/stl/container.hpp>`]]
- [[Algorithm] [`#include <boost/phoenix/stl/algorithm.hpp>`]]
-]
-
-[blurb __tip__ Finer grained include files are available per feature; see the
-succeeding sections.]
-
-[endsect]
-
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit.qbk 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
@@ -43,14 +43,21 @@
[include starter_kit/values.qbk]
[include starter_kit/references.qbk]
[include starter_kit/arguments.qbk]
+
[endsect]
+
[section Composites]
-[include starter_kit/composites.qbk]
+
+Things start to get interesting when we start /composing/ primitives to form
+*composites*. The composites can, in turn, be composed to form even more complex
+composites.
+
[include starter_kit/operator.qbk]
[include starter_kit/statement.qbk]
[include starter_kit/object.qbk]
[include starter_kit/function.qbk]
[include starter_kit/more.qbk]
+
[endsect]
[endsect]
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/composites.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/composites.qbk 2011-01-22 07:41:47 EST (Sat, 22 Jan 2011)
+++ (empty file)
@@ -1,16 +0,0 @@
-[/==============================================================================
- Copyright (C) 2001-2010 Joel de Guzman
- Copyright (C) 2001-2005 Dan Marsden
- Copyright (C) 2001-2010 Thomas Heller
-
- 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 Composites]
-
-Things start to get interesting when we start /composing/ primitives to form
-*composites*. The composites can, in turn, be composed to form even more complex
-composites.
-
-[/endsect]
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk