Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r69144 - in sandbox/SOC/2010/phoenix3: boost/phoenix/core boost/phoenix/core/detail boost/phoenix/function boost/phoenix/statement boost/phoenix/statement/detail libs/phoenix/doc libs/phoenix/doc/html libs/phoenix/doc/html/phoenix libs/phoenix/doc/html/phoenix/examples libs/phoenix/doc/html/phoenix/inside libs/phoenix/doc/html/phoenix/inside/expression libs/phoenix/doc/html/phoenix/modules libs/phoenix/doc/html/phoenix/modules/core libs/phoenix/doc/html/phoenix/modules/stl libs/phoenix/doc/html/phoenix/starter_kit libs/phoenix/doc/notes libs/phoenix/doc/reference libs/phoenix/example
From: thom.heller_at_[hidden]
Date: 2011-02-22 09:40:59


Author: theller
Date: 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
New Revision: 69144
URL: http://svn.boost.org/trac/boost/changeset/69144

Log:
deleted a defunct exampled and some old quickbook files, fixed some warnings
Added:
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/acknowledgments.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/references.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/wrap_up.html (contents, props changed)
Removed:
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes.qbk
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference.qbk
   sandbox/SOC/2010/phoenix3/libs/phoenix/example/custom_evaluator.cpp
Text files modified:
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/expression.hpp | 16 ++++++----
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/terminal.hpp | 60 ++++++++++++++++++++++++++++++++++++++++
   sandbox/SOC/2010/phoenix3/boost/phoenix/core/value.hpp | 1
   sandbox/SOC/2010/phoenix3/boost/phoenix/function/function.hpp | 1
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/switch.hpp | 12 ++++----
   sandbox/SOC/2010/phoenix3/boost/phoenix/statement/switch.hpp | 10 +++---
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html | 17 ++++++----
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix-doc_HTML.manifest | 3 ++
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/basics.html | 10 +++---
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/examples/adding_an_expression.html | 5 ++-
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/examples/extending_actors.html | 8 ++--
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/actions.html | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/actor.html | 18 ++++++------
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression.html | 4 +-
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression.html | 10 +++---
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext.html | 10 +++---
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext_vararg.html | 10 +++---
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_vararg.html | 10 +++---
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/arguments.html | 8 ++--
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/references.html | 4 +-
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/values.html | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/operator.html | 12 ++++----
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/stl/algorithm.html | 6 ++--
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/stl/container.html | 4 +-
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/organization.html | 6 ++--
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html | 4 +-
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html | 2
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html | 4 +-
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/phoenix3.qbk | 11 ++-----
   30 files changed, 170 insertions(+), 102 deletions(-)

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/expression.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/expression.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/expression.hpp 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -188,9 +188,11 @@
             : expression:: BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(NAME_SEQ)) < \
                 BOOST_PP_IF( \
                     BOOST_PP_EQUAL(1, BOOST_PP_SEQ_SIZE(GRAMMAR_SEQ)) \
- , BOOST_PP_EMPTY() \
- , BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_POP_BACK(GRAMMAR_SEQ)) \
- ) \
+ , BOOST_PP_EMPTY \
+ , BOOST_PP_IDENTITY( \
+ BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_POP_BACK(GRAMMAR_SEQ)) \
+ ) \
+ )() \
                 BOOST_PP_COMMA_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR_SEQ))) \
                 proto::vararg< \
                     BOOST_PP_SEQ_ELEM( \
@@ -265,9 +267,11 @@
             : expression:: BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(N)) < \
                 BOOST_PP_IF( \
                     BOOST_PP_EQUAL(1, BOOST_PP_SEQ_SIZE(GRAMMAR)) \
- , BOOST_PP_EMPTY() \
- , BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_POP_BACK(GRAMMAR)) \
- ) \
+ , BOOST_PP_EMPTY \
+ , BOOST_PP_IDENTITY( \
+ BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_POP_BACK(GRAMMAR)) \
+ ) \
+ )() \
                 BOOST_PP_COMMA_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(GRAMMAR))) \
                 proto::vararg< \
                     BOOST_PP_SEQ_ELEM( \

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/terminal.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/terminal.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/terminal.hpp 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -11,11 +11,13 @@
 #include <boost/phoenix/core/limits.hpp>
 #include <boost/is_placeholder.hpp>
 #include <boost/phoenix/core/actor.hpp>
+#include <boost/phoenix/core/as_actor.hpp>
 #include <boost/phoenix/core/meta_grammar.hpp>
 #include <boost/phoenix/core/terminal_fwd.hpp>
 #include <boost/proto/matches.hpp>
 #include <boost/proto/transform/lazy.hpp>
 #include <boost/proto/functional/fusion/at.hpp>
+#include <boost/type_traits/remove_pointer.hpp>
 
 namespace boost { namespace phoenix
 {
@@ -106,6 +108,64 @@
             )
>
     {};
+
+ namespace meta
+ {
+ template<typename T>
+ struct const_ref
+ : add_reference<typename add_const<T>::type>
+ {};
+
+ template<typename T>
+ struct argument_type
+ : mpl::eval_if<
+ is_function<typename remove_pointer<T>::type>,
+ mpl::identity<T>,
+ const_ref<T> >
+ {
+ typedef T type;
+ };
+ }
+
+ template <typename T>
+ struct as_actor_base
+ {
+ typedef typename expression::terminal<T>::type type;
+
+ static typename expression::terminal<T>::type
+ convert(typename meta::argument_type<T>::type x)
+ {
+ return expression::terminal<T>::make(x);
+ }
+ };
+
+ // Sometimes it is necessary to auto-convert references to
+ // a value<T>. This happens when we are re-currying. This
+ // cannot happen through the standard public actor interfaces.
+ template <typename T>
+ struct as_actor_base<T&>
+ {
+ typedef typename expression::terminal<T>::type type;
+
+ static typename expression::terminal<T>::type
+ convert(T& x)
+ {
+ return expression::terminal<T>::make(x);
+ }
+ };
+
+ template <typename T, int N>
+ struct as_actor_base<T[N]>
+ {
+ typedef typename expression::terminal<T const *>::type type;
+
+ static typename expression::terminal<T const *>::type
+ convert(T const x[N])
+ {
+ return expression::terminal<T const *>::make(x);
+ }
+ };
+
 }}
 
 #endif

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/value.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/value.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/value.hpp 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -10,6 +10,7 @@
 
 #include <boost/phoenix/core/limits.hpp>
 #include <boost/phoenix/core/actor.hpp>
+#include <boost/phoenix/core/as_actor.hpp>
 #include <boost/phoenix/core/terminal.hpp>
 #include <boost/utility/result_of.hpp>
 

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/function/function.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/function/function.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/function/function.hpp 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -12,6 +12,7 @@
 #include <boost/fusion/sequence/intrinsic/at_c.hpp>
 #include <boost/phoenix/core/meta_grammar.hpp>
 #include <boost/phoenix/core/expression.hpp>
+#include <boost/phoenix/core/call.hpp>
 #include <boost/phoenix/support/iterate.hpp>
 #include <boost/proto/tags.hpp>
 #include <boost/utility/result_of.hpp>

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/switch.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/switch.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/detail/switch.hpp 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -33,7 +33,7 @@
 #pragma wave option(preserve: 1)
 #endif
 
- #define BOOST_PHOENIX_SWITCH_EVAL_TYPEDEF_R(Z, N, DATA) \
+ #define BOOST_PHOENIX_SWITCH_EVAL_TYPEDEF_R(Z, N, DATA) \
             typedef \
                 typename fusion::result_of::deref< \
                     typename fusion::result_of::advance_c< \
@@ -54,7 +54,7 @@
                 BOOST_PP_CAT(case_label, N); \
     /**/
 
- #define BOOST_PHOENIX_SWITCH_EVAL_R(Z, N, DATA) \
+ #define BOOST_PHOENIX_SWITCH_EVAL_R(Z, N, DATA) \
         case BOOST_PP_CAT(case_label, N)::value : \
             eval( \
                 proto::child_c<1>( \
@@ -67,8 +67,8 @@
             break; \
     /**/
 
-#define BOOST_PHOENIX_ITERATION_PARAMS \
- (3, (2, BOOST_PHOENIX_LIMIT, \
+#define BOOST_PHOENIX_ITERATION_PARAMS \
+ (3, (2, BOOST_PHOENIX_LIMIT, \
         <boost/phoenix/statement/detail/switch.hpp>))
 #include BOOST_PHOENIX_ITERATE()
 
@@ -88,7 +88,7 @@
                 Context & ctx
               , Cond const & cond
               , Cases const & cases
- , mpl::int_<BOOST_PHOENIX_ITERATION> size
+ , mpl::int_<BOOST_PHOENIX_ITERATION>
               , mpl::false_
             ) const
             {
@@ -120,7 +120,7 @@
                 Context & ctx
               , Cond const & cond
               , Cases const & cases
- , mpl::int_<BOOST_PHOENIX_ITERATION> size
+ , mpl::int_<BOOST_PHOENIX_ITERATION>
               , mpl::true_
             ) const
             {

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/switch.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/statement/switch.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/switch.hpp 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -122,7 +122,7 @@
         
         template <typename Context>
         result_type
- operator()(Context & ctx) const
+ operator()(Context &) const
         {
         }
 
@@ -146,7 +146,7 @@
                 Context & ctx
               , Cond const & cond
               , Cases const & cases
- , mpl::int_<1> size
+ , mpl::int_<1>
               , mpl::false_
             ) const
             {
@@ -172,7 +172,7 @@
                 Context & ctx
               , Cond const & cond
               , Cases const & cases
- , mpl::int_<1> size
+ , mpl::int_<1>
               , mpl::true_
             ) const
             {
@@ -259,7 +259,7 @@
                 Cond
               , Cases
>::type
- generate(Cases const & cases, mpl::false_) const
+ generate(Cases const &, mpl::false_) const
             {
                 BOOST_MPL_ASSERT_MSG(
                     false
@@ -274,7 +274,7 @@
     switch_(Cond const& cond)
     {
         return switch_gen<Cond>(cond);
- };
+ }
 
 }}
 

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-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -26,7 +26,7 @@
 </h3></div></div>
 <div><p class="copyright">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller</p></div>
 <div><div class="legalnotice">
-<a name="id716654"></a><p>
+<a name="id640059"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -125,10 +125,13 @@
 <dt><span class="section">Extending Actors</span></dt>
 <dt><span class="section">Adding an expression</span></dt>
 </dl></dd>
+<dt><span class="section">Wrap Up</span></dt>
+<dt><span class="section">Acknowledgments</span></dt>
+<dt><span class="section">References</span></dt>
 </dl>
 </div>
 <a name="phoenix.preface"></a><h2>
-<a name="id747351"></a>
+<a name="id670756"></a>
     <a class="link" href="index.html#phoenix.preface">Preface</a>
   </h2>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -147,7 +150,7 @@
     <span class="inlinemediaobject"><img src="images/lambda_cpp.png" alt="lambda_cpp"></span>
   </p>
 <a name="phoenix.description"></a><h3>
-<a name="id715458"></a>
+<a name="id638863"></a>
     <a class="link" href="index.html#phoenix.description">Description</a>
   </h3>
 <p>
@@ -165,7 +168,7 @@
     library is organized in highly independent modules and layers.
   </p>
 <a name="phoenix.how_to_use_this_manual"></a><h3>
-<a name="id715505"></a>
+<a name="id638910"></a>
     <a class="link" href="index.html#phoenix.how_to_use_this_manual">How to use this manual</a>
   </h3>
 <p>
@@ -187,7 +190,7 @@
     icons precede some text to indicate:
   </p>
 <div class="table">
-<a name="id715539"></a><p class="title"><b>Table&#160;1.1.&#160;Icons</b></p>
+<a name="id638944"></a><p class="title"><b>Table&#160;1.1.&#160;Icons</b></p>
 <div class="table-contents"><table class="table" summary="Icons">
 <colgroup>
 <col>
@@ -276,12 +279,12 @@
   </p>
 </div>
 <a name="phoenix._emphasis_role__bold___emphasis____to_joel_s_dear_daughter__phoenix__emphasis___emphasis_"></a><h3>
-<a name="id756308"></a>
+<a name="id679713"></a>
     <a class="link" href="index.html#phoenix._emphasis_role__bold___emphasis____to_joel_s_dear_daughter__phoenix__emphasis___emphasis_"><span class="bold"><strong><span class="emphasis"><em>...To Joel's dear daughter, Phoenix</em></span></strong></span></a>
   </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: February 21, 2011 at 11:37:41 GMT</small></p></td>
+<td align="left"><p><small>Last revised: February 22, 2011 at 14:03:26 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix-doc_HTML.manifest
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix-doc_HTML.manifest (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix-doc_HTML.manifest 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -60,3 +60,6 @@
 phoenix/examples.html
 phoenix/examples/extending_actors.html
 phoenix/examples/adding_an_expression.html
+phoenix/wrap_up.html
+phoenix/acknowledgments.html
+phoenix/references.html

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/acknowledgments.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/acknowledgments.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -0,0 +1,84 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Acknowledgments</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="wrap_up.html" title="Wrap Up">
+<link rel="next" href="references.html" title="References">
+</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="wrap_up.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="references.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="phoenix.acknowledgments"></a><a class="link" href="acknowledgments.html" title="Acknowledgments">Acknowledgments</a>
+</h2></div></div></div>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ Hartmut Kaiser implemented the original lazy casts and constructors based
+ on his original work on Spirit SE "semantic expressions" (the
+ precursor to Phoenix).
+ </li>
+<li class="listitem">
+ Angus Leeming implemented the container functions on Phoenix-1 which I
+ then ported to Phoenix-2.
+ </li>
+<li class="listitem">
+ Daniel Wallin helped with the scope module, local variables, let and lambda
+ and the algorithms. I frequently discuss design issues with Daniel on Yahoo
+ Messenger.
+ </li>
+<li class="listitem">
+ Jaakko Jarvi. DA Lambda MAN!
+ </li>
+<li class="listitem">
+ Dave Abrahams, for his constant presence, wherever, whenever.
+ </li>
+<li class="listitem">
+ Aleksey Gurtovoy, DA MPL MAN!
+ </li>
+<li class="listitem">
+ Doug Gregor, always a source of inspiration.
+ </li>
+<li class="listitem">
+ Dan Marsden, did almost all the work in bringing Phoenix-2 out the door.
+ </li>
+<li class="listitem">
+ Eric Niebler did a 2.0 pre-release review and wrote some range related
+ code that Phoenix stole and used in the algorithms.
+ </li>
+<li class="listitem">
+ Thorsten Ottosen; Eric's range_ex code began life as "container_algo"
+ in the old boost sandbox, by Thorsten in 2002-2003.
+ </li>
+<li class="listitem">
+ Jeremy Siek, even prior to Thorsten, in 2001, started the "container_algo".
+ </li>
+<li class="listitem">
+ Vladimir Prus wrote the mutating algorithms code from the Boost Wiki.
+ </li>
+<li class="listitem">
+ Daryle Walker did a 2.0 pre-release review.
+ </li>
+</ol></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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="wrap_up.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="references.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/basics.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/basics.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/basics.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -42,7 +42,7 @@
       </p></td></tr>
 </table></div>
 <a name="phoenix.basics.partial_function_application"></a><h4>
-<a name="id759694"></a>
+<a name="id683099"></a>
       <a class="link" href="basics.html#phoenix.basics.partial_function_application">Partial Function
       Application</a>
     </h4>
@@ -94,7 +94,7 @@
       black boxes anymore.
     </p>
 <a name="phoenix.basics.stl_and_higher_order_functions"></a><h4>
-<a name="id759909"></a>
+<a name="id683314"></a>
       <a class="link" href="basics.html#phoenix.basics.stl_and_higher_order_functions">STL and higher
       order functions</a>
     </h4>
@@ -126,7 +126,7 @@
       </p></td></tr>
 </table></div>
 <a name="phoenix.basics.lazy_evaluation"></a><h4>
-<a name="id760120"></a>
+<a name="id683525"></a>
       <a class="link" href="basics.html#phoenix.basics.lazy_evaluation">Lazy Evaluation</a>
     </h4>
 <p>
@@ -181,7 +181,7 @@
 </span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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="id760663"></a>
+<a name="id684068"></a>
       <a class="link" href="basics.html#phoenix.basics.forwarding_function_problem">Forwarding Function
       Problem</a>
     </h4>
@@ -222,7 +222,7 @@
       </p></td></tr>
 </table></div>
 <a name="phoenix.basics.polymorphic_functions"></a><h4>
-<a name="id760801"></a>
+<a name="id684206"></a>
       <a class="link" href="basics.html#phoenix.basics.polymorphic_functions">Polymorphic Functions</a>
     </h4>
 <p>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/examples/adding_an_expression.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/examples/adding_an_expression.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/examples/adding_an_expression.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -7,12 +7,13 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="up" href="../examples.html" title="Advanced Examples">
 <link rel="prev" href="extending_actors.html" title="Extending Actors">
+<link rel="next" href="../wrap_up.html" title="Wrap Up">
 </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="extending_actors.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.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="p" href="extending_actors.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.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="../wrap_up.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
@@ -145,7 +146,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="extending_actors.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.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="p" href="extending_actors.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../examples.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="../wrap_up.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/examples/extending_actors.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/examples/extending_actors.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/examples/extending_actors.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -39,7 +39,7 @@
         on how to implement a custom actor which is usable as if it were a STL Container.
       </p>
 <a name="phoenix.examples.extending_actors.requirements"></a><h5>
-<a name="id809637"></a>
+<a name="id733042"></a>
         <a class="link" href="extending_actors.html#phoenix.examples.extending_actors.requirements">Requirements</a>
       </h5>
 <p>
@@ -141,7 +141,7 @@
         Additionally, we want all the operator() overloads of the regular actor.
       </p>
 <a name="phoenix.examples.extending_actors.defining_the_actor"></a><h5>
-<a name="id809951"></a>
+<a name="id733355"></a>
         <a class="link" href="extending_actors.html#phoenix.examples.extending_actors.defining_the_actor">Defining
         the actor</a>
       </h5>
@@ -174,7 +174,7 @@
 <span class="special">};</span>
 </pre>
 <a name="phoenix.examples.extending_actors.using_the_actor"></a><h5>
-<a name="id810835"></a>
+<a name="id734240"></a>
         <a class="link" href="extending_actors.html#phoenix.examples.extending_actors.using_the_actor">Using the
         actor</a>
       </h5>
@@ -231,7 +231,7 @@
         Wow, that was easy!
       </p>
 <a name="phoenix.examples.extending_actors.adding_life_to_the_actor"></a><h5>
-<a name="id811502"></a>
+<a name="id734907"></a>
         <a class="link" href="extending_actors.html#phoenix.examples.extending_actors.adding_life_to_the_actor">Adding
         life to the actor</a>
       </h5>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/actions.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/actions.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/actions.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -84,7 +84,7 @@
         how the Phoenix AST will be traversed.
       </p>
 <a name="phoenix.inside.actions.writing_an_action"></a><h5>
-<a name="id798880"></a>
+<a name="id722285"></a>
         <a class="link" href="actions.html#phoenix.inside.actions.writing_an_action">Writing an Action</a>
       </h5>
 <p>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/actor.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/actor.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/actor.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -20,7 +20,7 @@
 <a name="phoenix.inside.actor"></a><a class="link" href="actor.html" title="Actors in Detail">Actors in Detail</a>
 </h3></div></div></div>
 <a name="phoenix.inside.actor.actor"></a><h5>
-<a name="id790341"></a>
+<a name="id713746"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.actor">Actor</a>
       </h5>
 <p>
@@ -70,7 +70,7 @@
 </span><span class="special">};</span>
 </pre>
 <div class="table">
-<a name="id790860"></a><p class="title"><b>Table&#160;1.9.&#160;Actor Concept Requirements</b></p>
+<a name="id714264"></a><p class="title"><b>Table&#160;1.9.&#160;Actor Concept Requirements</b></p>
 <div class="table-contents"><table class="table" summary="Actor Concept Requirements">
 <colgroup>
 <col>
@@ -136,7 +136,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="phoenix.inside.actor.function_call_operators"></a><h5>
-<a name="id791161"></a>
+<a name="id714566"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.function_call_operators">Function Call
         Operators</a>
       </h5>
@@ -169,7 +169,7 @@
 </td></tr>
 </table></div>
 <a name="phoenix.inside.actor.context"></a><h5>
-<a name="id791268"></a>
+<a name="id714672"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.context">Context</a>
       </h5>
 <p>
@@ -180,7 +180,7 @@
         all information necessary to evaluate the given expression.
       </p>
 <div class="table">
-<a name="id791312"></a><p class="title"><b>Table&#160;1.10.&#160;Context Concept Requirements</b></p>
+<a name="id714717"></a><p class="title"><b>Table&#160;1.10.&#160;Context Concept Requirements</b></p>
 <div class="table-contents"><table class="table" summary="Context Concept Requirements">
 <colgroup>
 <col>
@@ -278,7 +278,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="phoenix.inside.actor.environment"></a><h5>
-<a name="id791680"></a>
+<a name="id715084"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.environment">Environment</a>
       </h5>
 <p>
@@ -297,7 +297,7 @@
         such as local variables, etc.
       </p>
 <a name="phoenix.inside.actor.actions"></a><h5>
-<a name="id791745"></a>
+<a name="id715150"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.actions">Actions</a>
       </h5>
 <p>
@@ -336,7 +336,7 @@
         on actions</a>.
       </p>
 <a name="phoenix.inside.actor.evaluation"></a><h5>
-<a name="id792028"></a>
+<a name="id715433"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.evaluation">Evaluation</a>
       </h5>
 <pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">evaluator</span>
@@ -367,7 +367,7 @@
 <span class="special">}</span>
 </pre>
 <a name="phoenix.inside.actor.result_of__actor"></a><h5>
-<a name="id792533"></a>
+<a name="id715938"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.result_of__actor">result_of::actor</a>
       </h5>
 <p>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -155,7 +155,7 @@
         </p></td></tr>
 </table></div>
 <a name="phoenix.inside.expression.meta_grammar"></a><h5>
-<a name="id793947"></a>
+<a name="id717352"></a>
         <a class="link" href="expression.html#phoenix.inside.expression.meta_grammar">meta_grammar</a>
       </h5>
 <p>
@@ -183,7 +183,7 @@
         you include this grammar gets extended by various expressions.
       </p>
 <a name="phoenix.inside.expression.example"></a><h5>
-<a name="id794177"></a>
+<a name="id717582"></a>
         <a class="link" href="expression.html#phoenix.inside.expression.example">Example</a>
       </h5>
 <p>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -20,7 +20,7 @@
 <a name="phoenix.inside.expression.boost_phoenix_define_expression"></a><a class="link" href="boost_phoenix_define_expression.html" title="BOOST_PHOENIX_DEFINE_EXPRESSION">BOOST_PHOENIX_DEFINE_EXPRESSION</a>
 </h4></div></div></div>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression.description"></a><h6>
-<a name="id794998"></a>
+<a name="id718403"></a>
           <a class="link" href="boost_phoenix_define_expression.html#phoenix.inside.expression.boost_phoenix_define_expression.description">Description</a>
         </h6>
 <p>
@@ -29,7 +29,7 @@
           create Phoenix Expressions
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression.synopsis"></a><h6>
-<a name="id795033"></a>
+<a name="id718438"></a>
           <a class="link" href="boost_phoenix_define_expression.html#phoenix.inside.expression.boost_phoenix_define_expression.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION</span><span class="special">(</span>
@@ -40,7 +40,7 @@
 <span class="special">)</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression.semantics"></a><h6>
-<a name="id795138"></a>
+<a name="id718543"></a>
           <a class="link" href="boost_phoenix_define_expression.html#phoenix.inside.expression.boost_phoenix_define_expression.semantics">Semantics</a>
         </h6>
 <p>
@@ -88,13 +88,13 @@
           This macros also adds a specialization for <code class="computeroutput"><span class="identifier">meta_grammar</span><span class="special">::</span><span class="identifier">case_</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">name</span><span class="special">&gt;</span></code>.
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression.header"></a><h6>
-<a name="id795625"></a>
+<a name="id719030"></a>
           <a class="link" href="boost_phoenix_define_expression.html#phoenix.inside.expression.boost_phoenix_define_expression.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression.example"></a><h6>
-<a name="id795707"></a>
+<a name="id719112"></a>
           <a class="link" href="boost_phoenix_define_expression.html#phoenix.inside.expression.boost_phoenix_define_expression.example">Example</a>
         </h6>
 <p>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -20,7 +20,7 @@
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext"></a><a class="link" href="boost_phoenix_define_expression_ext.html" title="BOOST_PHOENIX_DEFINE_EXPRESSION_EXT">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</a>
 </h4></div></div></div>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext.description"></a><h6>
-<a name="id796939"></a>
+<a name="id720344"></a>
           <a class="link" href="boost_phoenix_define_expression_ext.html#phoenix.inside.expression.boost_phoenix_define_expression_ext.description">Description</a>
         </h6>
 <p>
@@ -29,7 +29,7 @@
           create Phoenix Expressions
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext.synopsis"></a><h6>
-<a name="id796974"></a>
+<a name="id720378"></a>
           <a class="link" href="boost_phoenix_define_expression_ext.html#phoenix.inside.expression.boost_phoenix_define_expression_ext.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span><span class="special">(</span>
@@ -43,7 +43,7 @@
 <span class="special">)</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext.semantics"></a><h6>
-<a name="id797114"></a>
+<a name="id720519"></a>
           <a class="link" href="boost_phoenix_define_expression_ext.html#phoenix.inside.expression.boost_phoenix_define_expression_ext.semantics">Semantics</a>
         </h6>
 <p>
@@ -92,13 +92,13 @@
           This macros also adds a specialization for <code class="computeroutput"><span class="identifier">meta_grammar</span><span class="special">::</span><span class="identifier">case_</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">name</span><span class="special">&gt;</span></code>.
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext.header"></a><h6>
-<a name="id797615"></a>
+<a name="id721019"></a>
           <a class="link" href="boost_phoenix_define_expression_ext.html#phoenix.inside.expression.boost_phoenix_define_expression_ext.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext.example"></a><h6>
-<a name="id797697"></a>
+<a name="id721102"></a>
           <a class="link" href="boost_phoenix_define_expression_ext.html#phoenix.inside.expression.boost_phoenix_define_expression_ext.example">Example</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span><span class="special">(</span>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext_vararg.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext_vararg.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext_vararg.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -20,7 +20,7 @@
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg"></a><a class="link" href="boost_phoenix_define_expression_ext_vararg.html" title="BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</a>
 </h4></div></div></div>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.description"></a><h6>
-<a name="id797859"></a>
+<a name="id721264"></a>
           <a class="link" href="boost_phoenix_define_expression_ext_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.description">Description</a>
         </h6>
 <p>
@@ -29,7 +29,7 @@
           create Phoenix Expressions
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.synopsis"></a><h6>
-<a name="id797895"></a>
+<a name="id721300"></a>
           <a class="link" href="boost_phoenix_define_expression_ext_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</span><span class="special">(</span>
@@ -43,7 +43,7 @@
 <span class="special">)</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.semantics"></a><h6>
-<a name="id798037"></a>
+<a name="id721442"></a>
           <a class="link" href="boost_phoenix_define_expression_ext_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.semantics">Semantics</a>
         </h6>
 <p>
@@ -92,13 +92,13 @@
 <span class="special">}</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.header"></a><h6>
-<a name="id798503"></a>
+<a name="id721908"></a>
           <a class="link" href="boost_phoenix_define_expression_ext_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.example"></a><h6>
-<a name="id798586"></a>
+<a name="id721991"></a>
           <a class="link" href="boost_phoenix_define_expression_ext_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.example">Example</a>
         </h6>
 <p>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_vararg.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_vararg.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_vararg.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -20,7 +20,7 @@
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg"></a><a class="link" href="boost_phoenix_define_expression_vararg.html" title="BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</a>
 </h4></div></div></div>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg.description"></a><h6>
-<a name="id796056"></a>
+<a name="id719461"></a>
           <a class="link" href="boost_phoenix_define_expression_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_vararg.description">Description</a>
         </h6>
 <p>
@@ -29,7 +29,7 @@
           create Phoenix Expressions
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg.synopsis"></a><h6>
-<a name="id796092"></a>
+<a name="id719497"></a>
           <a class="link" href="boost_phoenix_define_expression_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_vararg.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span><span class="special">(</span>
@@ -42,7 +42,7 @@
 <span class="special">)</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg.semantics"></a><h6>
-<a name="id796223"></a>
+<a name="id719628"></a>
           <a class="link" href="boost_phoenix_define_expression_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_vararg.semantics">Semantics</a>
         </h6>
 <p>
@@ -90,13 +90,13 @@
 <span class="special">}</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg.header"></a><h6>
-<a name="id796676"></a>
+<a name="id720080"></a>
           <a class="link" href="boost_phoenix_define_expression_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_vararg.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg.example"></a><h6>
-<a name="id796759"></a>
+<a name="id720163"></a>
           <a class="link" href="boost_phoenix_define_expression_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_vararg.example">Example</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span><span class="special">(</span>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/arguments.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/arguments.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/arguments.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -31,7 +31,7 @@
           an imaginary data-bin where a function argument will be placed.
         </p>
 <a name="phoenix.modules.core.arguments.predefined_arguments"></a><h6>
-<a name="id763747"></a>
+<a name="id687152"></a>
           <a class="link" href="arguments.html#phoenix.modules.core.arguments.predefined_arguments">Predefined
           Arguments</a>
         </h6>
@@ -75,7 +75,7 @@
           </p></td></tr>
 </table></div>
 <a name="phoenix.modules.core.arguments.user_defined_arguments"></a><h6>
-<a name="id764273"></a>
+<a name="id687677"></a>
           <a class="link" href="arguments.html#phoenix.modules.core.arguments.user_defined_arguments">User
           Defined Arguments</a>
         </h6>
@@ -97,7 +97,7 @@
 <pre class="programlisting"><span class="identifier">add</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="number">6</span><span class="special">)</span>
 </pre>
 <a name="phoenix.modules.core.arguments.evaluating_an_argument"></a><h6>
-<a name="id764424"></a>
+<a name="id687829"></a>
           <a class="link" href="arguments.html#phoenix.modules.core.arguments.evaluating_an_argument">Evaluating
           an Argument</a>
         </h6>
@@ -124,7 +124,7 @@
 <span class="identifier">Hello</span> <span class="identifier">World</span>
 </pre>
 <a name="phoenix.modules.core.arguments.extra_arguments"></a><h6>
-<a name="id764721"></a>
+<a name="id688126"></a>
           <a class="link" href="arguments.html#phoenix.modules.core.arguments.extra_arguments">Extra Arguments</a>
         </h6>
 <p>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/references.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/references.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/references.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -59,7 +59,7 @@
 <pre class="programlisting"><span class="identifier">add_assign</span><span class="special">(</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">i</span><span class="special">),</span> <span class="number">2</span><span class="special">)</span>
 </pre>
 <a name="phoenix.modules.core.references.evaluating_a_reference"></a><h6>
-<a name="id763345"></a>
+<a name="id686750"></a>
           <a class="link" href="references.html#phoenix.modules.core.references.evaluating_a_reference">Evaluating
           a Reference</a>
         </h6>
@@ -75,7 +75,7 @@
           prints out "3 Hello World"
         </p>
 <a name="phoenix.modules.core.references.constant_references"></a><h6>
-<a name="id763481"></a>
+<a name="id686886"></a>
           <a class="link" href="references.html#phoenix.modules.core.references.constant_references">Constant
           References</a>
         </h6>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/values.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/values.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/core/values.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -47,7 +47,7 @@
           but, as we'll see later on, there are situations where this is unavoidable.
         </p>
 <a name="phoenix.modules.core.values.evaluating_a_value"></a><h3>
-<a name="id762863"></a>
+<a name="id686268"></a>
           <a class="link" href="values.html#phoenix.modules.core.values.evaluating_a_value">Evaluating
           a Value</a>
         </h3>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/operator.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/operator.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/operator.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -134,18 +134,18 @@
 </span><span class="identifier">val</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// Lazily evaluated
 </span></pre>
 <a name="phoenix.modules.operator.supported_operators"></a><h5>
-<a name="id767090"></a>
+<a name="id690495"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.supported_operators">Supported operators</a>
       </h5>
 <a name="phoenix.modules.operator.unary_operators"></a><h5>
-<a name="id767109"></a>
+<a name="id690514"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.unary_operators">Unary operators</a>
       </h5>
 <pre class="programlisting"><span class="identifier">prefix</span><span class="special">:</span> <span class="special">~,</span> <span class="special">!,</span> <span class="special">-,</span> <span class="special">+,</span> <span class="special">++,</span> <span class="special">--,</span> <span class="special">&amp;</span> <span class="special">(</span><span class="identifier">reference</span><span class="special">),</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">dereference</span><span class="special">)</span>
 <span class="identifier">postfix</span><span class="special">:</span> <span class="special">++,</span> <span class="special">--</span>
 </pre>
 <a name="phoenix.modules.operator.binary_operators"></a><h5>
-<a name="id767240"></a>
+<a name="id690645"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.binary_operators">Binary operators</a>
       </h5>
 <pre class="programlisting"><span class="special">=,</span> <span class="special">[],</span> <span class="special">+=,</span> <span class="special">-=,</span> <span class="special">*=,</span> <span class="special">/=,</span> <span class="special">%=,</span> <span class="special">&amp;=,</span> <span class="special">|=,</span> <span class="special">^=,</span> <span class="special">&lt;&lt;=,</span> <span class="special">&gt;&gt;=</span>
@@ -154,7 +154,7 @@
 <span class="special">&amp;&amp;,</span> <span class="special">||,</span> <span class="special">-&gt;*</span>
 </pre>
 <a name="phoenix.modules.operator.ternary_operator"></a><h5>
-<a name="id767441"></a>
+<a name="id690846"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.ternary_operator">Ternary operator</a>
       </h5>
 <pre class="programlisting"><span class="identifier">if_else</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span>
@@ -167,7 +167,7 @@
         albeit in a lazy manner.
       </p>
 <a name="phoenix.modules.operator.member_pointer_operator"></a><h5>
-<a name="id767542"></a>
+<a name="id690947"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.member_pointer_operator">Member pointer
         operator</a>
       </h5>
@@ -208,7 +208,7 @@
 <span class="special">(</span><span class="identifier">arg1</span><span class="special">-&gt;*&amp;</span><span class="identifier">A</span><span class="special">::</span><span class="identifier">func</span><span class="special">)(</span><span class="identifier">arg2</span><span class="special">)(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">i</span><span class="special">);</span> <span class="comment">// returns a-&gt;func(i)
 </span></pre>
 <a name="phoenix.modules.operator.include_files"></a><h5>
-<a name="id767922"></a>
+<a name="id691327"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.include_files">Include Files</a>
       </h5>
 <div class="informaltable"><table class="table">

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/stl/algorithm.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/stl/algorithm.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/stl/algorithm.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -73,7 +73,7 @@
         </p>
 </div>
 <div class="table">
-<a name="id781812"></a><p class="title"><b>Table&#160;1.6.&#160;Iteration Algorithms</b></p>
+<a name="id705217"></a><p class="title"><b>Table&#160;1.6.&#160;Iteration Algorithms</b></p>
 <div class="table-contents"><table class="table" summary="Iteration Algorithms">
 <colgroup>
 <col>
@@ -128,7 +128,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id782091"></a><p class="title"><b>Table&#160;1.7.&#160;Querying Algorithms</b></p>
+<a name="id705496"></a><p class="title"><b>Table&#160;1.7.&#160;Querying Algorithms</b></p>
 <div class="table-contents"><table class="table" summary="Querying Algorithms">
 <colgroup>
 <col>
@@ -441,7 +441,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id784563"></a><p class="title"><b>Table&#160;1.8.&#160;Transformation Algorithms</b></p>
+<a name="id707968"></a><p class="title"><b>Table&#160;1.8.&#160;Transformation Algorithms</b></p>
 <div class="table-contents"><table class="table" summary="Transformation Algorithms">
 <colgroup>
 <col>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/stl/container.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/stl/container.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/modules/stl/container.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -137,7 +137,7 @@
           does not use the member "dot" syntax.
         </p>
 <div class="table">
-<a name="id778761"></a><p class="title"><b>Table&#160;1.4.&#160;Sample usage</b></p>
+<a name="id702166"></a><p class="title"><b>Table&#160;1.4.&#160;Sample usage</b></p>
 <div class="table-contents"><table class="table" summary="Sample usage">
 <colgroup>
 <col>
@@ -215,7 +215,7 @@
         </p>
 </div>
 <div class="table">
-<a name="id779101"></a><p class="title"><b>Table&#160;1.5.&#160;Lazy STL Container Functions</b></p>
+<a name="id702506"></a><p class="title"><b>Table&#160;1.5.&#160;Lazy STL Container Functions</b></p>
 <div class="table-contents"><table class="table" summary="Lazy STL Container Functions">
 <colgroup>
 <col>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/organization.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/organization.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/organization.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -52,7 +52,7 @@
       files. There are no object files to link against.
     </p>
 <a name="phoenix.organization.core"></a><h3>
-<a name="id761193"></a>
+<a name="id684598"></a>
       <a class="link" href="organization.html#phoenix.organization.core">Core</a>
     </h3>
 <p>
@@ -72,7 +72,7 @@
       can again be another expression.
     </p>
 <div class="table">
-<a name="id761232"></a><p class="title"><b>Table&#160;1.2.&#160;Modules</b></p>
+<a name="id684636"></a><p class="title"><b>Table&#160;1.2.&#160;Modules</b></p>
 <div class="table-contents"><table class="table" summary="Modules">
 <colgroup>
 <col>
@@ -200,7 +200,7 @@
       core module is defined in <code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>.
     </p>
 <div class="table">
-<a name="id761520"></a><p class="title"><b>Table&#160;1.3.&#160;Includes</b></p>
+<a name="id684924"></a><p class="title"><b>Table&#160;1.3.&#160;Includes</b></p>
 <div class="table-contents"><table class="table" summary="Includes">
 <colgroup>
 <col>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/references.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/references.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -0,0 +1,83 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>References</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="acknowledgments.html" title="Acknowledgments">
+</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="acknowledgments.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>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="phoenix.references"></a><a class="link" href="references.html" title="References">References</a>
+</h2></div></div></div>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ Why Functional Programming Matters, John Hughes, 1989. Available online
+ at http://www.math.chalmers.se/~rjmh/Papers/whyfp.html.
+ </li>
+<li class="listitem">
+ Boost.Lambda library, Jaakko Jarvi, 1999-2004 Jaakko Jarvi, Gary Powell.
+ Available online at http://www.boost.org/libs/lambda/.
+ </li>
+<li class="listitem">
+ Functional Programming in C++ using the FC++ Library: a short article introducing
+ FC++, Brian McNamara and Yannis Smaragdakis, August 2003. Available online
+ at http://www.cc.gatech.edu/~yannis/fc++/.
+ </li>
+<li class="listitem">
+ Side-effects and partial function application in C++, Jaakko Jarvi and
+ Gary Powell, 2001. Available online at http://osl.iu.edu/~jajarvi/publications/papers/mpool01.pdf.
+ </li>
+<li class="listitem">
+ Spirit Version 1.8.1, Joel de Guzman, Nov 2004. Available online at http://www.boost.org/libs/spirit/.
+ </li>
+<li class="listitem">
+ The Boost MPL Library, Aleksey Gurtovoy and David Abrahams, 2002-2004.
+ Available online at http://www.boost.org/libs/mpl/.
+ </li>
+<li class="listitem">
+ Generic Programming Redesign of Patterns, Proceedings of the 5th European
+ Conference on Pattern Languages of Programs, (EuroPLoP'2000) Irsee, Germany,
+ July 2000. Available online at http://www.coldewey.com/europlop2000/papers/geraud%2Bduret.zip.
+ </li>
+<li class="listitem">
+ A Gentle Introduction to Haskell, Paul Hudak, John Peterson and Joseph
+ Fasel, 1999. Available online at http://www.haskell.org/tutorial/.
+ </li>
+<li class="listitem">
+ Large scale software design, John Lackos, ISBN 0201633620, Addison-Wesley,
+ July 1996.
+ </li>
+<li class="listitem">
+ Design Patterns, Elements of Reusable Object-Oriented Software, Erich Gamma,
+ Richard Helm, Ralph Jhonson, and John Vlissides, Addison-Wesley, 1995.
+ </li>
+<li class="listitem">
+ The Forwarding Problem: Arguments Peter Dimov, Howard E. Hinnant, Dave
+ Abrahams, September 09, 2002. Available online: <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm" target="_top">Forwarding
+ Function Problem</a>.
+ </li>
+</ol></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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="acknowledgments.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>
+</div>
+</body>
+</html>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -52,7 +52,7 @@
       into high gear quickly.
     </p>
 <a name="phoenix.starter_kit.functors_everywhere"></a><h4>
-<a name="id756412"></a>
+<a name="id679817"></a>
       <a class="link" href="starter_kit.html#phoenix.starter_kit.functors_everywhere">Functors everywhere</a>
     </h4>
 <p>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -45,7 +45,7 @@
 <span class="identifier">function</span><span class="special">&lt;</span><span class="identifier">is_odd_impl</span><span class="special">&gt;</span> <span class="identifier">is_odd</span><span class="special">;</span>
 </pre>
 <a name="phoenix.starter_kit.lazy_functions.things_to_note_"></a><h5>
-<a name="id759213"></a>
+<a name="id682618"></a>
         <a class="link" href="lazy_functions.html#phoenix.starter_kit.lazy_functions.things_to_note_">Things
         to note:</a>
       </h5>
@@ -75,7 +75,7 @@
         (See function.cpp)
       </p>
 <a name="phoenix.starter_kit.lazy_functions.predefined_lazy_functions"></a><h5>
-<a name="id759391"></a>
+<a name="id682796"></a>
         <a class="link" href="lazy_functions.html#phoenix.starter_kit.lazy_functions.predefined_lazy_functions">Predefined
         Lazy Functions</a>
       </h5>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -69,7 +69,7 @@
       </p>
 </div>
 <a name="phoenix.starter_kit.lazy_operators.first_practical_example"></a><h5>
-<a name="id758140"></a>
+<a name="id681545"></a>
         <a class="link" href="lazy_operators.html#phoenix.starter_kit.lazy_operators.first_practical_example">First
         Practical Example</a>
       </h5>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -32,7 +32,7 @@
         World"</span></code>.
       </p>
 <a name="phoenix.starter_kit.values.lazy_evaluation"></a><h5>
-<a name="id756576"></a>
+<a name="id679981"></a>
         <a class="link" href="values.html#phoenix.starter_kit.values.lazy_evaluation">Lazy Evaluation</a>
       </h5>
 <p>
@@ -64,7 +64,7 @@
         anything and defers the evaluation for later.
       </p>
 <a name="phoenix.starter_kit.values.callbacks"></a><h5>
-<a name="id756801"></a>
+<a name="id680206"></a>
         <a class="link" href="values.html#phoenix.starter_kit.values.callbacks">Callbacks</a>
       </h5>
 <p>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/wrap_up.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/wrap_up.html 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Wrap Up</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="examples/adding_an_expression.html" title="Adding an expression">
+<link rel="next" href="acknowledgments.html" title="Acknowledgments">
+</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="examples/adding_an_expression.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="acknowledgments.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="phoenix.wrap_up"></a><a class="link" href="wrap_up.html" title="Wrap Up">Wrap Up</a>
+</h2></div></div></div>
+<p>
+ Sooner or later more FP techniques become standard practice as people find
+ the true value of this programming discipline outside the academe and into
+ the mainstream. In as much as structured programming of the 70s and object
+ oriented programming in the 80s and generic programming in the 90s shaped our
+ thoughts towards a more robust sense of software engineering, FP will certainly
+ be a paradigm that will catapult us towards more powerful software design and
+ engineering onward into the new millennium.
+ </p>
+<p>
+ Let me quote Doug Gregor of Boost.org. About functional style programming libraries:
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <span class="emphasis"><em>They're gaining acceptance, but are somewhat stunted by the ubiquitousness
+ of broken compilers. The C++ community is moving deeper into the so-called
+ "STL- style" programming paradigm, which brings many aspects of
+ functional programming into the fold. Look at, for instance, the Spirit parser
+ to see how such function objects can be used to build Yacc-like grammars
+ with semantic actions that can build abstract syntax trees on the fly. This
+ type of functional composition is gaining momentum.</em></span>
+ </p></blockquote></div>
+<p>
+ Indeed. Phoenix is another attempt to introduce more FP techniques into the
+ mainstream. Not only is it a tool that will make life easier for the programmer.
+ In its own right, the actual design of the library itself is a model of true
+ C++ FP in action. The library is designed and structured in a strict but clear
+ and well mannered FP sense. By all means, use the library as a tool. But for
+ those who want to learn more about FP in C++, don't stop there, I invite you
+ to take a closer look at the design of the library itself.
+ </p>
+<p>
+ So there you have it. Have fun! See you in the FP world.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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="examples/adding_an_expression.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="acknowledgments.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes.qbk 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
+++ (empty file)
@@ -1,27 +0,0 @@
-[/==============================================================================
- Copyright (C) 2001-2010 Joel de Guzman
- 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 Notes]
-
-[include notes/porting_from_2_0.qbk]
-
-[/
-[section C++0x Lambdas - Differences, Similarities]
-Notes on portability with all the other existing FP libraries
-[endsect]
-
-[section BLL - Differences, Similarities]
-Notes on portability with all the other existing FP libraries
-[endsect]
-
-[include notes/performance.qbk]
-
-[/include notes/journey.qbk]
-]
-
-[endsect]

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-02-22 09:40:46 EST (Tue, 22 Feb 2011)
@@ -63,12 +63,7 @@
 [include modules.qbk]
 [include inside.qbk]
 [include examples.qbk]
-[/include advanced.qbk]
-[/include reference.qbk]
 
-[/include actors.qbk]
-[/include advanced.qbk]
-[/include notes.qbk]
-[/include wrap_up.qbk]
-[/include acknowledgment.qbk]
-[/include references.qbk]
+[include wrap_up.qbk]
+[include acknowledgment.qbk]
+[include references.qbk]

Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference.qbk 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
+++ (empty file)
@@ -1,899 +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)
-===============================================================================/]
-
-[def __unspecified__ /unspecified/]
-[template expression[type] expression::[type]]
-[template rule[type] expression::[type]]
-
-[section Reference]
-
-While the previous section gave a brief overview on how to use the Phoenix
-library, this section will provide as the reference to the interfaces defined in
-phoenix.
-
-With Phoenix being a domain specific embedded language this reference manual is
-different than most references to C++ libraries.
-
-Phoenix is designed in a way that the language constructs are clearly separated
-from how they are evaluated. This follows the design principles of the C++
-standard library.
-This design also allows us to see the code (i.e. Phoenix Actors) as data, and the
-different evaluation schemes, which act as the algorithms.
-
-The remainder of this section is structured as following:
-
-[variablelist
- [
- [
- The Language
- ]
- [
- Definition of the Phoenix grammar
- ]
- [
- Reference to the mechanisms used to generate Phoenix actors
- ]
- [
- Extension mechanism of the Phoenix grammar
- ]
- ]
- [
- [
- Evaluation
- ]
- [
- How Phoenix actors get evaluated
- ]
- [
- Reference to the predefined evaluators
- ]
- [
- Extension mechanism of the evaluation process
- ]
- ]
- [
- [
- Advanced Tutorials
- ]
- [
- In depth discussion of the advertised features in the previous
- sections
- ]
- ]
-]
-
-[heading Concepts]
-
-Throughout this reference section various concepts are used. To disambiguate
-their meanings consider the following definitions.
-
-[heading Phoenix Actor]
-
-A Phoenix Actor is the C++ Expression that is generated by the Phoenix
-Generators.
-
-[heading Phoenix Generator]
-
-The Generator is a C++ Expression that results in a Phoenix Actor.
-
-This Generator is:
-
-* A function (can be a free function, operator, or member function)
-* An instance of a Phoenix Actor
-
-[section Core Mechanisms]
-
-[section `actor`]
-
-[heading Description]
-
-`actor` is main interface to evaluate any Phoenix expression. It is used to wrap
-the Phoenix Expression Templates and provides various operator() overloads.
-
-[heading Synopsis]
- namespace result_of
- {
- template <
- typename Expr
- , typename A0 = void
- , typename A1 = void
- ...
- , typename AN = void
- , typename Dummy = void
- >
- struct actor
- {
- typedef __unspecified__ type;
- };
- }
-
- template <typename Expr>
- struct actor;
-
-[heading Template Parameters]
-
-[table
- [[Parameter] [Description]]
- [[`Expr`] [The type of the expression]]
- [[`A0`...`AN`] [The type of the supplied arguments]]
-]
-
-[variablelist Notation
- [[`expr`] [An instance of a Phoenix actor]]
- [[`a0`...`a1`] [Heterogeneous values]]
-]
-
-[heading Expression Semantics]
-
-[table
- [[Expression] [Semantic]]
- [[`result_of::actor<Expr, A0...AN>::type`] [The result type of the evaluated expression]]
- [[`boost::result_of<actor<Expr>(A0...AN)>::type`] [Same as `result_of::actor<Expr, A0...AN>::type`]]
- [[`expr(a0...aN)`] [Evaluates the expression]]
-]
-
-The expression is evaluated using the defined __phoenix_evaluator_default__.
-
-[header Header]
- #include <boost/phoenix/core/actor.hpp>
-
-[heading Example]
-
-See the __phoenix_starter_kit__ and the __phoenix_language__ for examples
-
-[endsect]
-
-[section `meta_grammar`]
-
-[heading Description]
-
-`meta_grammar` is an open extensible set of __proto__ grammar rules.
-It is used to define what valid Phoenix Expressions are.
-
-[heading Synopsis]
- struct meta_grammar
- : proto::switch<meta_grammar>
- {
- template <typename Tag, typename Dummy = void>
- struct case_
- : proto::not<proto::_>
- {};
- };
-
-[heading Template Parameters]
-
-[table
- [[Parameter] [Description]]
- [[`Tag`] [The tag of the phoenix expression]]
-]
-
-[heading Expression Semantics]
-
-[variablelist Notation
- [[`Expr`] [Any type]]
-]
-
-[table
- [[Expression] [Semantic]]
- [[`proto::matches<Expr, meta_grammar>::type`] [Calculates whether `Expr` matches meta_grammar]]
-]
-
-By default, `meta_grammar` matches nothing. By including the headers described in the __phoenix_language__ section,
-the appropriate rules are added to the grammar.
-
-[header Header]
- #include <boost/phoenix/core/meta_grammar.hpp>
-
-[heading Example]
- // Adding terminals to the set of valid Phoenix expressions
- template <>
- struct meta_grammar::case_<proto::tag::terminal>
- : proto::terminal<proto::_>
- {};
-
- // Adding terminals to the set of valid Phoenix expressions and supply a
- // transform that is called whenever a terminal is found
- template <>
- struct meta_grammar::case_<proto::tag::terminal>
- : proto::when<
- proto::terminal<proto::_>
- , proto::_value // return the value of the terminal
- >
- {};
-
- // Adding terminals to the set of valid Phoenix expressions and supply a
- // transform that is supplied by an external transform.
- template <>
- struct meta_grammar::case_<proto::tag::terminal>
- : proto::when<
- proto::terminal<proto::_>
- , proto::external_transform
- >
- {};
-
-[note
- The last form is how phoenix grammar rules are defined in the library.
- See __phoenix_evaluator__ for more details
-]
-
-[endsect]
-
-[section:environment `environment`]
-
-[heading Description]
-To evaluate a phoenix expression, an environment needs to be provided. This
-environment is a Fusion Random Access Sequences.
-
-[heading Synopsis]
- namespace result_of
- {
- template <typename Parameter, typename Actions>
- struct environment
- {
- typedef __unspecified__ type;
- };
- }
-
- template <typename Parameter, typename Actions>
- typename environment<Parameter, Actions>::type
- environment(Parameter & parameter, Actions const & actions);
-
- struct _env;
-
- struct _params;
-
- struct _actions;
-
-[heading Template Parameter]
-
-[heading Expression Semantics]
-
-[heading Header]
- #include <boost/phoenix/core/environment.hpp>
-
-[heading Examples]
-
-[endsect]
-
-[section:evaluator `evaluator`]
-
-[heading Description]
-`evaluator` is responsible for evaluating Phoenix expressions.
-
-[heading Synopsis]
- struct evaluator;
-
-[heading Expression Semantics]
-
-[table
- [[Expression] [Semantic]]
- [[`eval(expr, env)`] [Evaluates `expr` with the parameters and actions supplied by `env`]]
-]
-
-[header Header]
- #include <boost/phoenix/core/meta_grammar.hpp>
-
-[heading Examples]
-
-[section:default_actions `default_actions`]
-
-[heading Description]
-
-[heading Synopsis]
-
-[heading Expression Semantics]
-
-[header Header]
-
-[heading Examples]
-[endsect]
-
-[section:is_nullary `is_nullary`]
-
-[heading Description]
-
-[heading Synopsis]
-
-[heading Expression Semantics]
-
-[header Header]
-
-[heading Examples]
-[endsect]
-
-[section:arity `arity`]
-
-[heading Description]
-
-[heading Synopsis]
-
-[heading Expression Semantics]
-
-[header Header]
-
-[heading Examples]
-[endsect]
-
-[endsect]
-
-[section:expression `expression`]
-
-[heading Description]
-
-[heading Synopsis]
-
-[heading Expression Semantics]
-
-[header Header]
-
-[heading Examples]
-
-[endsect]
-
-[section:phoenix_define_expression `BOOST_PHOENIX_DEFINE_EXPRESSION`]
-
-[heading Description]
-
-[heading Synopsis]
-
-[heading Expression Semantics]
-
-[header Header]
-
-[heading Examples]
-[endsect]
-
-[section:phoenix_define_expression_vararg `BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG`]
-
-[heading Description]
-
-[heading Synopsis]
-
-[heading Expression Semantics]
-
-[header Header]
-
-[heading Examples]
-[endsect]
-
-[section:phoenix_define_expression_ext `BOOST_PHOENIX_DEFINE_EXPRESSION_EXT`]
-
-[heading Description]
-
-[heading Synopsis]
-
-[heading Expression Semantics]
-
-[header Header]
-
-[heading Examples]
-[endsect]
-
-[section:phoenix_define_expression_vararg_ext `BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG_EXT`]
-
-[heading Description]
-
-[heading Synopsis]
-
-[heading Expression Semantics]
-
-[header Header]
-
-[heading Examples]
-[endsect]
-
-[section Terminals]
-
-[section Placeholders]
-[endsect]
-
-[section `is_custom_terminal`]
-
-[heading Description]
-
-[heading Synopsis]
-
-[heading Expression Semantics]
-
-[header Header]
-
-[heading Examples]
-[endsect]
-
-[section `custom_terminal`]
-
-[heading Description]
-
-[heading Synopsis]
-
-[heading Expression Semantics]
-
-[header Header]
-
-[heading Examples]
-[endsect]
-
-[endsect]
-
-[endsect]
-
-[section The Language]
-
-The definition of the language is split into the following parts:
-
-* formal language definition of the Phoenix Generators in EBNF notation
-* Synopsis of the C++ expressions
-
-[section Core]
-
- terminal := value | reference | placeholder
-
- value := "val" "(" expression ")"
-
- reference := "ref" "(" C++ expression ")"
- | "cref" "(" C++ expression ")"
-
- placeholder := _1 | _2 | _3 | ... | _N
- | arg1 | arg2 | arg3 | ... | argN
-
-Terminals are the core building blocks. Phoenix, by default distinguishes
-between 3 types of terminals:
-
-# Value Terminals
-# Reference Terminals
-# Placeholders
-
-The last two terminal types are handled by the terminal customization points.
-
-[section Value]
-
-Whenever we see a constant in a partially applied function, an
-
- expression::value<T>::type
-
-(where T is the type of the constant) is automatically created for
-us. For instance:
-
- add(arg1, 6)
-
-Passing a second argument, `6`, an `expression::value<int>::type` is implicitly created
-behind the scenes. This is also equivalent to:
-
- add(arg1, val(6))
-
-`val(x)` generates an `expression::value<T>::type` where `T` is the type of `x`. In most
-cases, there's no need to explicitly use `val`, but, as we'll see later on,
-there are situations where this is unavoidable.
-
-[heading Synopsis]
- namespace expression
- {
- template <typename T>
- struct value
- {
- typedef __unspecified__ type;
-
- static type make(T t);
- };
- }
-
- namespace rule
- {
- struct value : proto::terminal<proto::_> {};
- }
-
- template <typename T>
- typename expression::value<T>::type
- val(T t);
-
-[heading Parameters]
-
-[table
- [[Parameter] [Requirement] [Description]]
- [[`T`] [Model of Copy Constructable] [Operation's Argument]]
- [[`t`] [Object of type T] [Operation's Argument]]
-]
-
-[heading Expression Semantics]
- expression::value<T>::type
-
-[*Return type]: Returns a Phoenix Actor representing a terminal expression
-
-[*Semantics]: A metafunction for generating a Phoenix value expression type
-
- expression::value<T>::make(t);
-
-[*Return type]: `expression::value<T>::type`
-
-[*Semantics]: Creates a Phoenix Value expression initialized with a copy of of
-the supplied argument
-
- val(t);
-
-[*Return type]: `expression::value<T>::type`
-
-[*Semantics]: Calls `expression::value<T>::make(t)`, Automatically deduces type T
-
-[header Header]
- #include <boost/phoenix/core/value.hpp>
-
-[header Example]
-
-TODO
-
-[endsect]
-
-[section Reference]
-
-Values are immutable constants. Attempting to modify a value will result in a
-compile time error. When we want the function to modify the parameter, we use a
-reference instead. For instance, imagine a lazy function `add_assign`:
-
- void add_assign(T& x, T y) { x += y; } // pseudo code
-
-Here, we want the first function argument, x, to be mutable. Obviously, we
-cannot write:
-
- add_assign(1, 2) // error first argument is immutable
-
-In C++, we can pass in a reference to a variable as the first argument in our
-example above. Yet, by default, the library forces arguments passed to partially
-applied functions functions to be immutable values (see [link __phoenix_reference_value__]
-). To achieve our intent, we use:
-
- expression::reference<T>::type
-
-This is similar to `expression::value<T>::type` before but instead holds a reference to a
-variable.
-
-We normally don't instantiate `expression::reference<T>::type` objects directly. Instead we
-use `ref`. For example (where `i` is an `int` variable):
-
- add_assign(ref(i), 2)
-
-Another free function `cref(cv)` may also be used. `cref(cv)` creates an
-`expression::reference<T const>::type` object. This is similar to `expression::value<T>::type` but
-when the data to be passed as argument to a function is heavy and expensive to
-copy by value, the `cref(cv)` offers a lighter alternative.
-
-[heading Synopsis]
- namespace expression
- {
- template <typename T>
- struct reference
- {
- typedef __unspecified__ type;
-
- static type make(T &t);
- };
- }
-
- template <typename T>
- typename expression::reference<T>::type
- ref(T & t);
-
- template <typename T>
- typename expression::reference<T const>::type
- cref(T const & t);
-
-[heading Parameters]
-
-[table
- [[Parameter] [Requirement] [Description]]
- [[T] [] [Operation's Argument]]
- [[t] [Object of type T] [Operation's Argument]]
-]
-
-[heading Expression Semantics]
- expression::reference<T>::type
-
-[*Return type]: Returns a Phoenix Actor representing a terminal expression
-
-[*Semantics]: A metafunction for generating a Phoenix reference expression type
-
- expression::reference<T>::make(t);
-
-[*Return type]: `expression::reference<T>::type`
-
-[*Semantics]: Creates a Phoenix reference expression initialized with the supplied argument
-
- ref(t);
-
-[*Return type]: `expression::reference<T>::type`
-
-[*Semantics]: Calls `expression::reference<T>::make(t)`, Automatically deduces type T
-
- cref(t);
-
-[*Return type]: `expression::reference<T const>::type`
-
-[*Semantics]: Calls `expression::reference<T const>::make(t)`, Automatically deduces type T
-
-[heading Header]
- #include <boost/phoenix/core/reference.hpp>
-
-[heading Example]
-
-TODO
-
-[endsect]
-
-[section Arguments]
-
-[heading Description]
-
-The argument placeholder acts as an
-imaginary data-bin where a function argument will be placed.
-
-[heading Predefined Arguments]
-
-There are a few predefined instances of `expression::argument<N>::type` named
-`arg1`..`argN`, and its __bll__ counterpart `_1`..`_N`. (where N is a predefined
-maximum).
-
-[note You can set `BOOST_PHOENIX_ARG_LIMIT`, the predefined maximum
-placeholder index. By default, `BOOST_PHOENIX_ARG_LIMIT` is set to `BOOST_PHOENIX_LIMIT`
-(See [link phoenix.reference.concepts.actor Actor]).]
-
-[heading Synopsis]
- namespace expression
- {
- template <int I>
- struct argument
- {
- typedef __unspecified__ type;
-
- static const type make();
- };
- }
-
- namespace placeholders
- {
- expression::argument<1>::type const _1;
- expression::argument<2>::type const _2;
- expression::argument<3>::type const _3;
- ...
- expression::argument<N>::type const _N;
-
- expression::argument<1>::type const arg1;
- expression::argument<2>::type const arg2;
- expression::argument<3>::type const arg3;
- ...
- expression::argument<N>::type const argN;
- }
-
- namespace arg_names
- {
- expression::argument<1>::type const _1;
- expression::argument<2>::type const _2;
- expression::argument<3>::type const _3;
- ...
- expression::argument<N>::type const _N;
-
- expression::argument<1>::type const arg1;
- expression::argument<2>::type const arg2;
- expression::argument<3>::type const arg3;
- ...
- expression::argument<N>::type const argN;
- }
-
-[heading Parameters]
-
-[table
- [[Parameter] [Requirement] [Description]]
- [[I] [] [Operation's Argument]]
-]
-
-[heading Expression Semantics]
- expression::argument<I>::type
-
-[*Return type]: Returns a Phoenix Actor representing a placeholder expression
-
-[*Semantics]: A metafunction for generating a Phoenix placeholder expression type
-
-We use an instance of: expression::argument<N>::type to represent the Nth function
-argument. The argument placeholder acts as an
-
-[heading Header]
- #include <boost/phoenix/core/argument.hpp>
-
-[heading Example]
-
-TODO
-
-[endsect]
-
-[section Nothing]
-
-Finally, the `expression::null::type` does nothing; (a "bum", if you will :-).
-There's a sole `expression::null::type` instance named "nothing". This actor is
-actually useful in situations where we don't want to do anything. (See
-[link phoenix.reference.modules.statement.for__statement for_ Statement] for example).
-
-[endsect]
-
-[endsect]
-
-[endsect]
-
-[endsect]
-
-[section EBNF]
-
-[teletype]
-
-[def __phoenix_peg__ [link phoenix.reference.phoenix_expressions.phoenix_ast phoenix]]
-[def __phoenix_peg_terminals__ [link phoenix.reference.phoenix_expressions.phoenix_ast.terminals terminals]]
-[def __phoenix_peg_operator__ [link phoenix.reference.phoenix_expressions.phoenix_ast.operator operator]]
-[def __phoenix_peg_operator_arithmetic__ [link phoenix.reference.phoenix_expressions.phoenix_ast.operator.arithmetic arithmetic]]
-[def __phoenix_peg_operator_bitwise__ [link phoenix.reference.phoenix_expressions.phoenix_ast.operator bitwise]]
-[def __phoenix_peg_operator_comparison__ [link phoenix.reference.phoenix_expressions.phoenix_ast.operator comparison]]
-[def __phoenix_peg_operator_if_else__ [link phoenix.reference.phoenix_expressions.phoenix_ast.operator if_else]]
-[def __phoenix_peg_operator_io__ [link phoenix.reference.phoenix_expressions.phoenix_ast.operator io]]
-[def __phoenix_peg_operator_logical__ [link phoenix.reference.phoenix_expressions.phoenix_ast.operator logical]]
-[def __phoenix_peg_operator_member__ [link phoenix.reference.phoenix_expressions.phoenix_ast.operator member]]
-[def __phoenix_peg_operator_self__ [link phoenix.reference.phoenix_expressions.phoenix_ast.operator self]]
-[def __phoenix_peg_statement__ [link phoenix.reference.phoenix_expressions.phoenix_ast.operator statement]]
-[def __phoenix_peg_object__ [link phoenix.reference.phoenix_expressions.phoenix_ast.object object]]
-[def __phoenix_peg_function__ [link phoenix.reference.phoenix_expressions.phoenix_ast.function function]]
-[def __phoenix_peg_bind__ [link phoenix.reference.phoenix_expressions.phoenix_ast.bind bind]]
-[def __phoenix_peg_scope__ [link phoenix.reference.phoenix_expressions.phoenix_ast.scope scope]]
-[def __phoenix_peg_fusion__ [link phoenix.reference.phoenix_expressions.phoenix_ast.fusion fusion]]
-
- phoenix := statement ( "," statement )*
-
- statement := expression | loops | if_statement | exception | switch
-
- expression := operator
-
- primary_expr := terminal
- | "if_else(" expression "," expression "," expression ")"
- | cast
- | construction
- | bind
- | scope
- | ( "(" expression ")" )
-
- terminal := value | reference | placeholder
-
- cast := ( "static_cast_" | "dynamic_cast_" | "reinterpret_cast_" | "const_cast_" ) "<" T ">(" expression ")"
-
- construction := ( ( "construct" | "new_" ) "<" T ">(" [ expression ( "," expression )* ] ")" ) |
- ( "delete_(" expression ")" )
-
- bind := "bind(" ( expression | function_pointer ) ( "," expression )* ")"
-
- scope := let | lambda
-
- local_var_def := local_var "=" expression
-
- let := "let(" [ local_var_def ( "," local_var_def )* ] ")[" ( phoenix | local_var )* "]"
-
- lambda := "lambda" [ "(" [ local_var_def ( "," local_var_def )* ] ")" ] "[" ( phoenix | local_var )* "]"
-
- loops := for_loop | while_loop | do_while_loop
-
- for_loop := "for_(" expression "," expression "," expression ")[" phoenix "]"
-
- while_loop := "while_(" expression ")[" phoenix "]"
-
- do_while_loop := "do_[" phoenix "].while_(" expression ")"
-
- if_statement := "if_(" expression ")[" statement "]" [ ".else_[" phoenix "]" ]
-
- exception := throw | try_catch
-
- throw := "throw_(" [ expression ] ")"
-
- try_catch := "try_[" phoenix "]"
- ( ".catch_<" E ">()[" phoenix "]" )*
- [ ".catch_all[" phoenix "]" ]
-
- switch := "switch_(" expression ")[" (
- ( case_statement ( "," case_statement )* [ "," default_statement ] ) |
- default_statement
- )
-
- case_statement := "case_<" N ">(" phoenix ")"
- default_statement := "default_(" phoenix ")"
-
- operator := logical_or_op (
- ( "=" logical_or_op )* |
- ( "+=" logical_or_op )* |
- ( "-=" logical_or_op )* |
- ( "*=" logical_or_op )* |
- ( "/=" logical_or_op )* |
- ( "%=" logical_or_op )* |
- ( "&=" logical_or_op )* |
- ( "^=" logical_or_op )* |
- ( "|=" logical_or_op )* |
- ( "<<=" logical_or_op )* |
- ( ">>=" logical_or_op )*
- )
-
- logical_or_op := logical_and_op ( "||" logical_and_op )*
-
- logical_and_op := bitwise_or_op ( "&&" bitwise_or_op )*
-
- bitwise_or_op := bitwise_xor_op ( "|" bitwise_xor_op )*
-
- bitwise_xor_op := bitwise_and_op ( "^" bitwise_and_op )*
-
- bitwise_and_op := equality_op ( "&" equality_op )*
-
- equality_op := relational_op (
- ( "==" relational_op )* |
- ( "!=" relational_op )*
- )
-
- relational_op := shift_op (
- ( "<" shift_op )* |
- ( ">" shift_op )* |
- ( "<=" shift_op )* |
- ( ">=" shift_op )*
- )
-
- shift_op := additive_op (
- ( "<<" additive_op )* |
- ( ">>" additive_op )*
- )
-
- additive_op := multiplicative_op (
- ( "+" multiplicative_op )* |
- ( "-" multiplicative_op )*
- )
-
- multiplicative_op := member_pointer_op (
- ( "*" member_pointer_op )* |
- ( "/" member_pointer_op )*
- )
-
- member_pointer_op := unary_op ( "->*" unary_op )*
-
- unary_op := unary_postfix_op
- | ( "*" unary_postfix_op )
- | ( "&" unary_postfix_op )
- | ( "+" unary_postfix_op )
- | ( "-" unary_postfix_op )
- | ( "~" unary_postfix_op )
- | ( "!" unary_postfix_op )
- | ( "++" unary_postfix_op )
- | ( "--" unary_postfix_op )
-
- unary_postfix_op := primary_expr
- | ( primary_expr "[" expression "]" )
- | ( primary_expr "()" )
- | ( primary_expr "(" expression ( "," expression )* ")" )
- | ( primary_expr "++" )
- | ( primary_expr "--" )
-
-
-
-
-
-[/include reference/basics.qbk]
-[/include reference/organisation.qbk]
-[/include reference/concepts.qbk]
-[/include reference/actor.qbk]
-[/include reference/composite.qbk]
-
-[/section Modules]
-
-[/include reference/core.qbk]
-[/include reference/function.qbk]
-[/include reference/operator.qbk]
-[/include reference/statement.qbk]
-[/include reference/object.qbk]
-[/include reference/scope.qbk]
-[/include reference/bind.qbk]
-[/include reference/stl.qbk]
-
-[/endsect]
-
-[endsect]

Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/example/custom_evaluator.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/example/custom_evaluator.cpp 2011-02-22 09:40:46 EST (Tue, 22 Feb 2011)
+++ (empty file)
@@ -1,170 +0,0 @@
-/*==============================================================================
- Copyright (c) 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)
-==============================================================================*/
-
-#include <boost/phoenix/core.hpp>
-#include <boost/phoenix/operator.hpp>
-#include <boost/proto/proto.hpp>
-
-#include <iostream>
-#include <typeinfo>
-
-namespace proto = boost::proto;
-namespace phoenix = boost::phoenix;
-
-namespace impl
-{
-
- template <typename OutStream>
- struct phoenix_to_cpp
- {
- phoenix_to_cpp( OutStream& ostr ) : ostr(ostr), level(1) {};
-
- OutStream& ostr;
- int level;
-
- template <typename Expr, typename Tag = typename proto::tag_of<Expr>::type>
- struct eval
- : proto::null_eval<Expr, phoenix_to_cpp>
- {};
-
- template <typename Expr>
- struct eval<Expr, proto::tag::minus>
- {
- typedef OutStream& result_type;
-
- result_type operator()(Expr &expr, phoenix_to_cpp &ctx) const
- {
- proto::eval(proto::child_c<0>(expr), ctx);
- ctx.ostr << " - ";
- proto::eval(proto::child_c<1>(expr), ctx);
-
- return ctx.ostr;
- }
- };
-
- template <typename Expr>
- struct eval<Expr, proto::tag::plus>
- {
- typedef OutStream& result_type;
-
- result_type operator()(Expr &expr, phoenix_to_cpp &ctx) const
- {
- proto::eval(proto::child_c<0>(expr), ctx);
- ctx.ostr << " + ";
- proto::eval(proto::child_c<1>(expr), ctx);
-
- return ctx.ostr;
- }
- };
-
- template <typename Expr>
- struct eval<Expr, proto::tag::comma>
- {
- typedef OutStream& result_type;
-
- result_type operator()(Expr &expr, phoenix_to_cpp &ctx) const
- {
- /*ctx.ostr << std::setw(ctx.level*4) << " ";*/ proto::eval(proto::child_c<0>(expr), ctx);
- ctx.ostr << ";\n";
- /*ctx.ostr << std::setw(ctx.level*4) << " ";*/ proto::eval(proto::child_c<1>(expr), ctx);
- ctx.ostr << ";";
-
- return ctx.ostr;
- }
- };
-
- template <typename Expr>
- struct eval<Expr, proto::tag::function>
- {
- typedef OutStream& result_type;
-
- template <typename E>
- void output(OutStream& os, E const& expr) const
- {
- std::cout << typeid( expr ).name() << "\n\n";
- std::cout << typeid( typename phoenix::make_argument<boost::mpl::int_<0> >::type ).name() << "\n\n";
- }
-
- void output(OutStream& os, typename phoenix::make_argument<boost::mpl::int_<0> >::type const& expr)
- {
- os << "arg" << 0;
- }
- void output(OutStream& os, typename phoenix::make_argument<boost::mpl::int_<1> >::type const& expr)
- {
- os << "arg" << 1;
- }
- void output(OutStream& os, typename phoenix::make_argument<boost::mpl::int_<2> >::type const& expr)
- {
- os << "arg" << 2;
- }
- void output(OutStream& os, typename phoenix::make_argument<boost::mpl::int_<3> >::type const& expr)
- {
- os << "arg" << 3;
- }
- /*phoenix::actor<
- proto::basic_expr<
- boost::proto::tag::function
- , proto::list3<
- proto::basic_expr<
- proto::tag::terminal
- , proto::term< phoenix::funcwrap<phoenix::argument> >
- >
- , Env
- , proto::basic_expr<
- proto::tag::terminal
- , proto::term< N >
- >
- >
- >
- > const& expr) const */
-
- result_type operator()(Expr &expr, phoenix_to_cpp &ctx) const
- {
-
- output( ctx.ostr, expr );
-
- return ctx.ostr;
- }
- };
- };
-}
-
-template <typename Expr>
-void phoenix_to_cpp(Expr const& expr)
-{
- std::cout << "template <typename Result";
-
- for( unsigned i = 0; i < phoenix::arity(expr); ++i )
- {
- std::cout << ", typename Arg" << i;
- }
- std::cout << ">\n";
- std::cout << "Result f(";
- for( unsigned i = 0; i < phoenix::arity(expr); ++i )
- {
- std::cout << "Arg" << i << " arg" << i;
- if( i != phoenix::arity(expr)-1 ) std::cout << ", ";
- }
- std::cout << ")\n{\n";
-
- impl::phoenix_to_cpp<std::ostream> ctx(std::cout);
- proto::eval( expr, ctx );
-
- std::cout << "\n}\n";
-}
-
-
-int main()
-{
- using phoenix::arg_names::arg1;
- using phoenix::arg_names::arg2;
- using phoenix::arg_names::arg3;
-
- phoenix_to_cpp( (arg1 + arg2, arg1 - arg2, arg1 + arg2 - arg3 ) );
-
-}
-


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