Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r49250 - in branches/release/libs/spirit: classic/test doc/qi_and_karma example/qi example/qi/mini_xml_samples phoenix/doc/html phoenix/doc/html/phoenix phoenix/test/algorithm phoenix/test/bind phoenix/test/container phoenix/test/operator phoenix/test/scope test test/karma test/qi
From: joel_at_[hidden]
Date: 2008-10-10 10:47:57


Author: djowel
Date: 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
New Revision: 49250
URL: http://svn.boost.org/trac/boost/changeset/49250

Log:
Merge from Trunk
Added:
   branches/release/libs/spirit/test/karma/confix.cpp (contents, props changed)
   branches/release/libs/spirit/test/qi/confix.cpp (contents, props changed)
   branches/release/libs/spirit/test/repeat_ast_tests.cpp (contents, props changed)
Properties modified:
   branches/release/libs/spirit/doc/qi_and_karma/employee.qbk (props changed)
   branches/release/libs/spirit/doc/qi_and_karma/mini_xml.qbk (props changed)
   branches/release/libs/spirit/example/qi/mini_xml3.cpp (props changed)
   branches/release/libs/spirit/example/qi/mini_xml_samples/4.toyxml (props changed)
Text files modified:
   branches/release/libs/spirit/classic/test/mix_and_match_trees.cpp | 6 ++--
   branches/release/libs/spirit/classic/test/numerics_tests.cpp | 3 +
   branches/release/libs/spirit/classic/test/position_iterator_tests.cpp | 60 ++++++++++++++++++++++++++++++++-------
   branches/release/libs/spirit/phoenix/doc/html/index.html | 14 ++++----
   branches/release/libs/spirit/phoenix/doc/html/phoenix/algorithm.html | 6 ++--
   branches/release/libs/spirit/phoenix/doc/html/phoenix/basics.html | 10 +++---
   branches/release/libs/spirit/phoenix/doc/html/phoenix/composite.html | 38 ++++++++++++------------
   branches/release/libs/spirit/phoenix/doc/html/phoenix/container.html | 4 +-
   branches/release/libs/spirit/phoenix/doc/html/phoenix/inside_phoenix.html | 30 ++++++++++----------
   branches/release/libs/spirit/phoenix/doc/html/phoenix/organization.html | 6 ++--
   branches/release/libs/spirit/phoenix/doc/html/phoenix/primitives.html | 12 ++++----
   branches/release/libs/spirit/phoenix/doc/html/phoenix/starter_kit.html | 12 ++++----
   branches/release/libs/spirit/phoenix/test/algorithm/iteration.cpp | 2
   branches/release/libs/spirit/phoenix/test/algorithm/querying.cpp | 2
   branches/release/libs/spirit/phoenix/test/algorithm/querying2.cpp | 2
   branches/release/libs/spirit/phoenix/test/algorithm/transformation1.cpp | 2
   branches/release/libs/spirit/phoenix/test/algorithm/transformation2.cpp | 2
   branches/release/libs/spirit/phoenix/test/algorithm/transformation3.cpp | 2
   branches/release/libs/spirit/phoenix/test/algorithm/transformation4.cpp | 2
   branches/release/libs/spirit/phoenix/test/bind/bind_function_object_tests.cpp | 6 ++++
   branches/release/libs/spirit/phoenix/test/container/container_tests.hpp | 2
   branches/release/libs/spirit/phoenix/test/operator/member.cpp | 4 ++
   branches/release/libs/spirit/phoenix/test/scope/bug_000008.cpp | 1
   branches/release/libs/spirit/phoenix/test/scope/dynamic_tests.cpp | 2
   branches/release/libs/spirit/test/Jamfile | 50 +++++++++++++++++----------------
   branches/release/libs/spirit/test/karma/optional.cpp | 31 ++++++++++++++++++++
   branches/release/libs/spirit/test/karma/test.hpp | 50 ++++++++++++++++----------------
   27 files changed, 222 insertions(+), 139 deletions(-)

Modified: branches/release/libs/spirit/classic/test/mix_and_match_trees.cpp
==============================================================================
--- branches/release/libs/spirit/classic/test/mix_and_match_trees.cpp (original)
+++ branches/release/libs/spirit/classic/test/mix_and_match_trees.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -54,7 +54,7 @@
 
         typedef rule<ast_scanner> ast_rule;
         typedef rule<pt_scanner> pt_rule;
- typedef rule<Scanner> rule;
+ typedef rule<Scanner> rule_;
 
         definition(my_grammar const & /* self */)
         {
@@ -62,12 +62,12 @@
             start_ = gen_pt_node_d[ pt_rule_ ];
         }
 
- rule const & start() const
+ rule_ const & start() const
         {
             return start_;
         }
 
- rule start_;
+ rule_ start_;
         ast_rule ast_rule_;
         pt_rule pt_rule_;
     };

Modified: branches/release/libs/spirit/classic/test/numerics_tests.cpp
==============================================================================
--- branches/release/libs/spirit/classic/test/numerics_tests.cpp (original)
+++ branches/release/libs/spirit/classic/test/numerics_tests.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -9,8 +9,9 @@
 =============================================================================*/
 #include <boost/spirit/include/classic_core.hpp>
 #include <boost/spirit/include/classic_assign_actor.hpp>
-#include <iostream>
 #include <boost/detail/lightweight_test.hpp>
+#include <iostream>
+#include <climits>
 
 using namespace std;
 using namespace BOOST_SPIRIT_CLASSIC_NS;

Modified: branches/release/libs/spirit/classic/test/position_iterator_tests.cpp
==============================================================================
--- branches/release/libs/spirit/classic/test/position_iterator_tests.cpp (original)
+++ branches/release/libs/spirit/classic/test/position_iterator_tests.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -12,6 +12,7 @@
 #include <vector>
 #include <string>
 #include <list>
+#include <algorithm>
 #include <boost/config.hpp>
 #include <boost/concept_check.hpp>
 #include <boost/mpl/list.hpp>
@@ -60,6 +61,7 @@
 void CheckBasicFunctionality(void);
 void CheckColumnCounting(void);
 void CheckLineExtraction(void);
+void CheckDistance(void);
 
 void CheckInstantiation(void)
 {
@@ -81,6 +83,7 @@
     CheckBasicFunctionality();
     CheckColumnCounting();
     CheckLineExtraction();
+ CheckDistance();
 
     return boost::report_errors();
 }
@@ -138,28 +141,38 @@
 {
     IterT end;
 
- BOOST_TEST(*iter == '\n' || *iter == '\r');
+ BOOST_TEST(*iter == '\n');
     BOOST_TEST(iter.get_position().line == 1);
     ++iter; // 0
     BOOST_TEST(iter.get_position().line == 2);
     ++iter; // 1
     ++iter; // 2
     ++iter; // 3
- ++iter; // newline
- BOOST_TEST(*iter == '\n' || *iter == '\r');
+ ++iter; // \r
+ BOOST_TEST(*iter == '\r');
+ BOOST_TEST(iter.get_position().line == 2);
+ ++iter; // \n
+ BOOST_TEST(*iter == '\n');
+ BOOST_TEST(iter.get_position().line == 2);
     ++iter; // 4
     BOOST_TEST(iter.get_position().line == 3);
     ++iter; // 5
     ++iter; // 6
     ++iter; // 7
- ++iter; // newline
- BOOST_TEST(*iter == '\n' || *iter == '\r');
+ ++iter; // \n
+ BOOST_TEST(*iter == '\n');
+ BOOST_TEST(iter.get_position().line == 3);
     ++iter; // 8
     BOOST_TEST(iter.get_position().line == 4);
     ++iter; // 9
- ++iter; // newline
- BOOST_TEST(*iter == '\n' || *iter == '\r');
+ ++iter; // \n
+ BOOST_TEST(iter.get_position().line == 4);
+ BOOST_TEST(*iter == '\n');
+ ++iter; // \r
+ BOOST_TEST(iter.get_position().line == 5);
+ BOOST_TEST(*iter == '\r');
     ++iter; // end
+ BOOST_TEST(iter.get_position().line == 6);
     BOOST_TEST(iter == end);
 }
 
@@ -378,6 +391,20 @@
     CheckEmptySequence<iterc_t>();
 }
 
+template <typename IterT>
+void CheckDistance(IterT begin)
+{
+ IterT end;
+
+ std::size_t std_distance = std::distance(begin, end);
+
+ std::size_t manual_count = 0;
+ for(IterT it = begin; it != end; ++it)
+ ++manual_count;
+
+ BOOST_TEST(std_distance == manual_count);
+}
+
 
 ///////////////////////////////////////////////////////////////////////////////
 } /* namespace test_impl */
@@ -410,10 +437,10 @@
 
     const char* b = "\n0123\r\n4567\n89\n\r";
 
- test_impl::CheckLineCounting(position_iterator<iter_t>(b, b+15, ""));
- test_impl::CheckLineCounting(position_iterator2<iter_t>(b, b+15, ""));
- test_impl::CheckLineCounting(position_iterator<iter_t, file_position_without_column>(b, b+15, ""));
- test_impl::CheckLineCounting(position_iterator2<iter_t, file_position_without_column>(b, b+15, ""));
+ test_impl::CheckLineCounting(position_iterator<iter_t>(b, b+16, ""));
+ test_impl::CheckLineCounting(position_iterator2<iter_t>(b, b+16, ""));
+ test_impl::CheckLineCounting(position_iterator<iter_t, file_position_without_column>(b, b+16, ""));
+ test_impl::CheckLineCounting(position_iterator2<iter_t, file_position_without_column>(b, b+16, ""));
 }
 
 
@@ -432,3 +459,14 @@
 {
     test_impl::CheckLineExtraction();
 }
+
+void CheckDistance(void)
+{
+ const char* b = "\n0123\r\n4567\n89\n\r";
+ typedef const char* iter_t;
+
+ test_impl::CheckDistance(position_iterator<iter_t>(b, b+15, ""));
+ test_impl::CheckDistance(position_iterator2<iter_t>(b, b+15, ""));
+ test_impl::CheckDistance(position_iterator<iter_t, file_position_without_column>(b, b+15, ""));
+ test_impl::CheckDistance(position_iterator2<iter_t, file_position_without_column>(b, b+15, ""));
+}

Modified: branches/release/libs/spirit/phoenix/doc/html/index.html
==============================================================================
--- branches/release/libs/spirit/phoenix/doc/html/index.html (original)
+++ branches/release/libs/spirit/phoenix/doc/html/index.html 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -31,7 +31,7 @@
 <div><p class="copyright">Copyright © 2002-2005 Joel
       de Guzman, Dan Marsden</p></div>
 <div><div class="legalnotice">
-<a name="id385640"></a><p>
+<a name="id385274"></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>
@@ -122,7 +122,7 @@
       <span class="inlinemediaobject"><img src="images/lambda_cpp.png" alt="lambda_cpp"></span>
     </p>
 <a name="phoenix.preface.description"></a><h2>
-<a name="id456006"></a>
+<a name="id385804"></a>
       <a href="index.html#phoenix.preface.description">Description</a>
     </h2>
 <p>
@@ -142,7 +142,7 @@
       The library is organized in highly independent modules and layers.
     </p>
 <a name="phoenix.preface.how_to_use_this_manual"></a><h2>
-<a name="id385867"></a>
+<a name="id455895"></a>
       <a href="index.html#phoenix.preface.how_to_use_this_manual">How to use this manual</a>
     </h2>
 <p>
@@ -165,7 +165,7 @@
       icons precede some text to indicate:
     </p>
 <div class="table">
-<a name="id387059"></a><p class="title"><b>Table 1.1. Icons</b></p>
+<a name="id455925"></a><p class="title"><b>Table 1.1. Icons</b></p>
 <table class="table" summary="Icons">
 <colgroup>
 <col>
@@ -251,7 +251,7 @@
       Repository</a>.
     </p>
 <a name="phoenix.preface.support"></a><h2>
-<a name="id387350"></a>
+<a name="id387296"></a>
       <a href="index.html#phoenix.preface.support">Support</a>
     </h2>
 <p>
@@ -265,13 +265,13 @@
       The news group mirrors the mailing list. Here is a link to the archives: http://news.gmane.org/gmane.comp.parsers.spirit.general.
     </p>
 <a name="phoenix.preface._emphasis_role__bold___emphasis____to_my_dear_daughter__phoenix__emphasis___emphasis_"></a><h2>
-<a name="id387417"></a>
+<a name="id387363"></a>
       <a href="index.html#phoenix.preface._emphasis_role__bold___emphasis____to_my_dear_daughter__phoenix__emphasis___emphasis_"><span class="bold"><b><span class="emphasis"><em>...To my dear daughter, Phoenix</em></span></b></span></a>
     </h2>
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: July 23, 2008 at 17:25:10 GMT</small></p></td>
+<td align="left"><p><small>Last revised: July 23, 2008 at 17:24:10 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/release/libs/spirit/phoenix/doc/html/phoenix/algorithm.html
==============================================================================
--- branches/release/libs/spirit/phoenix/doc/html/phoenix/algorithm.html (original)
+++ branches/release/libs/spirit/phoenix/doc/html/phoenix/algorithm.html 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -80,7 +80,7 @@
       <span class="inlinemediaobject"><img src="../images/tip.png" alt="tip"></span> Arguments in brackets denote optional parameters.
     </p></div>
 <div class="table">
-<a name="id486475"></a><p class="title"><b>Table 1.7. Iteration Algorithms</b></p>
+<a name="id486434"></a><p class="title"><b>Table 1.7. Iteration Algorithms</b></p>
 <table class="table" summary="Iteration Algorithms">
 <colgroup>
 <col>
@@ -127,7 +127,7 @@
 </table>
 </div>
 <div class="table">
-<a name="id486782"></a><p class="title"><b>Table 1.8. Querying Algorithms</b></p>
+<a name="id486741"></a><p class="title"><b>Table 1.8. Querying Algorithms</b></p>
 <table class="table" summary="Querying Algorithms">
 <colgroup>
 <col>
@@ -378,7 +378,7 @@
 </table>
 </div>
 <div class="table">
-<a name="id489506"></a><p class="title"><b>Table 1.9. Transformation Algorithms</b></p>
+<a name="id489465"></a><p class="title"><b>Table 1.9. Transformation Algorithms</b></p>
 <table class="table" summary="Transformation Algorithms">
 <colgroup>
 <col>

Modified: branches/release/libs/spirit/phoenix/doc/html/phoenix/basics.html
==============================================================================
--- branches/release/libs/spirit/phoenix/doc/html/phoenix/basics.html (original)
+++ branches/release/libs/spirit/phoenix/doc/html/phoenix/basics.html 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -48,7 +48,7 @@
       </p></td></tr>
 </table></div>
 <a name="phoenix.basics.partial_function_application"></a><h2>
-<a name="id459733"></a>
+<a name="id459690"></a>
       <a href="basics.html#phoenix.basics.partial_function_application">Partial Function
       Application</a>
     </h2>
@@ -100,7 +100,7 @@
       application.
     </p>
 <a name="phoenix.basics.stl_and_higher_order_functions"></a><h2>
-<a name="id460004"></a>
+<a name="id459960"></a>
       <a href="basics.html#phoenix.basics.stl_and_higher_order_functions">STL and higher
       order functions</a>
     </h2>
@@ -133,7 +133,7 @@
       </p></td></tr>
 </table></div>
 <a name="phoenix.basics.lazy_evaluation"></a><h2>
-<a name="id460260"></a>
+<a name="id460216"></a>
       <a href="basics.html#phoenix.basics.lazy_evaluation">Lazy Evaluation</a>
     </h2>
 <p>
@@ -191,7 +191,7 @@
 </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">endl</span><span class="special">;</span> <span class="comment">// prints 0 or false
 </span></pre>
 <a name="phoenix.basics.forwarding_function_problem"></a><h2>
-<a name="id460889"></a>
+<a name="id460845"></a>
       <a href="basics.html#phoenix.basics.forwarding_function_problem">Forwarding Function
       Problem</a>
     </h2>
@@ -223,7 +223,7 @@
       Function Problem</a>" but prohibits code like above.
     </p>
 <a name="phoenix.basics.polymorphic_functions"></a><h2>
-<a name="id461099"></a>
+<a name="id461055"></a>
       <a href="basics.html#phoenix.basics.polymorphic_functions">Polymorphic Functions</a>
     </h2>
 <p>

Modified: branches/release/libs/spirit/phoenix/doc/html/phoenix/composite.html
==============================================================================
--- branches/release/libs/spirit/phoenix/doc/html/phoenix/composite.html (original)
+++ branches/release/libs/spirit/phoenix/doc/html/phoenix/composite.html 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -288,12 +288,12 @@
 </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.composite.operator.supported_operators"></a><h2>
-<a name="id469226"></a>
+<a name="id469184"></a>
         <a href="composite.html#phoenix.composite.operator.supported_operators">Supported
         operators</a>
       </h2>
 <a name="phoenix.composite.operator.unary_operators"></a><h3>
-<a name="id469251"></a>
+<a name="id469209"></a>
         <a href="composite.html#phoenix.composite.operator.unary_operators">Unary operators</a>
       </h3>
 <pre class="programlisting">
@@ -301,7 +301,7 @@
 <span class="identifier">postfix</span><span class="special">:</span> <span class="special">++,</span> <span class="special">--</span>
 </pre>
 <a name="phoenix.composite.operator.binary_operators"></a><h3>
-<a name="id469399"></a>
+<a name="id469357"></a>
         <a href="composite.html#phoenix.composite.operator.binary_operators">Binary operators</a>
       </h3>
 <pre class="programlisting">
@@ -311,7 +311,7 @@
 <span class="special">&amp;&amp;,</span> <span class="special">||,</span> <span class="special">-&gt;*</span>
 </pre>
 <a name="phoenix.composite.operator.ternary_operator"></a><h3>
-<a name="id469622"></a>
+<a name="id469580"></a>
         <a href="composite.html#phoenix.composite.operator.ternary_operator">Ternary operator</a>
       </h3>
 <pre class="programlisting">
@@ -325,7 +325,7 @@
         albeit in a lazy manner.
       </p>
 <a name="phoenix.composite.operator.member_pointer_operator"></a><h3>
-<a name="id469742"></a>
+<a name="id469700"></a>
         <a href="composite.html#phoenix.composite.operator.member_pointer_operator">Member
         pointer operator</a>
       </h3>
@@ -369,7 +369,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>
 <div class="table">
-<a name="id470169"></a><p class="title"><b>Table 1.4. Include Files</b></p>
+<a name="id470127"></a><p class="title"><b>Table 1.4. Include Files</b></p>
 <table class="table" summary="Include Files">
 <colgroup>
 <col>
@@ -974,7 +974,7 @@
         <tt class="computeroutput"><span class="keyword">dynamic_cast</span></tt>, <tt class="computeroutput"><span class="keyword">const_cast</span></tt> and <tt class="computeroutput"><span class="keyword">reinterpret_cast</span></tt>.
       </p>
 <a name="phoenix.composite.object.construction"></a><h2>
-<a name="id475951"></a>
+<a name="id475908"></a>
         <a href="composite.html#phoenix.composite.object.construction">Construction</a>
       </h2>
 <p>
@@ -1018,7 +1018,7 @@
         </p></td></tr>
 </table></div>
 <a name="phoenix.composite.object.new"></a><h2>
-<a name="id476315"></a>
+<a name="id476272"></a>
         <a href="composite.html#phoenix.composite.object.new">New</a>
       </h2>
 <p>
@@ -1059,7 +1059,7 @@
         </p></td></tr>
 </table></div>
 <a name="phoenix.composite.object.delete"></a><h2>
-<a name="id476651"></a>
+<a name="id476608"></a>
         <a href="composite.html#phoenix.composite.object.delete">Delete</a>
       </h2>
 <p>
@@ -1084,7 +1084,7 @@
 <span class="identifier">delete_</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="identifier">arg1</span><span class="special">)</span> <span class="comment">// note the spelling of delete_ (with trailing underscore)
 </span></pre>
 <a name="phoenix.composite.object.casts"></a><h2>
-<a name="id476871"></a>
+<a name="id476828"></a>
         <a href="composite.html#phoenix.composite.object.casts">Casts</a>
       </h2>
 <p>
@@ -1141,7 +1141,7 @@
         This section deals with local variables and nested lambda scopes.
       </p>
 <a name="phoenix.composite.scope.local_variables"></a><h2>
-<a name="id477790"></a>
+<a name="id477747"></a>
         <a href="composite.html#phoenix.composite.scope.local_variables">Local Variables</a>
       </h2>
 <pre class="programlisting">
@@ -1163,7 +1163,7 @@
 <span class="identifier">actor</span><span class="special">&lt;</span><span class="identifier">local_variable</span><span class="special">&lt;</span><span class="identifier">size_key</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">size</span><span class="special">;</span>
 </pre>
 <a name="phoenix.composite.scope.predefined_local_variables"></a><h2>
-<a name="id477914"></a>
+<a name="id477871"></a>
         <a href="composite.html#phoenix.composite.scope.predefined_local_variables">Predefined
         Local Variables</a>
       </h2>
@@ -1176,7 +1176,7 @@
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">local_names</span><span class="special">;</span>
 </pre>
 <a name="phoenix.composite.scope.let"></a><h2>
-<a name="id478101"></a>
+<a name="id478058"></a>
         <a href="composite.html#phoenix.composite.scope.let">let</a>
       </h2>
 <pre class="programlisting">
@@ -1221,7 +1221,7 @@
 <span class="special">]</span>
 </pre>
 <a name="phoenix.composite.scope.reference_preservation"></a><h2>
-<a name="id478506"></a>
+<a name="id478463"></a>
         <a href="composite.html#phoenix.composite.scope.reference_preservation">Reference
         Preservation</a>
       </h2>
@@ -1276,7 +1276,7 @@
         and <tt class="computeroutput"><span class="identifier">ref</span></tt>s are L-values. <tt class="computeroutput"><span class="identifier">val</span></tt>s are R-values.
       </p>
 <a name="phoenix.composite.scope.visibility"></a><h2>
-<a name="id479058"></a>
+<a name="id479015"></a>
         <a href="composite.html#phoenix.composite.scope.visibility">Visibility</a>
       </h2>
 <p>
@@ -1329,7 +1329,7 @@
 <span class="special">]</span>
 </pre>
 <a name="phoenix.composite.scope.lambda"></a><h2>
-<a name="id479523"></a>
+<a name="id479480"></a>
         <a href="composite.html#phoenix.composite.scope.lambda">lambda</a>
       </h2>
 <pre class="programlisting">
@@ -1522,7 +1522,7 @@
         function generates a suitable binder object, a composite.
       </p>
 <a name="phoenix.composite.bind.binding_functions"></a><h2>
-<a name="id481395"></a>
+<a name="id481353"></a>
         <a href="composite.html#phoenix.composite.bind.binding_functions">Binding Functions</a>
       </h2>
 <pre class="programlisting">
@@ -1558,7 +1558,7 @@
         will print out "4".
       </p>
 <a name="phoenix.composite.bind.binding_member_functions"></a><h2>
-<a name="id481800"></a>
+<a name="id481759"></a>
         <a href="composite.html#phoenix.composite.bind.binding_member_functions">Binding Member
         Functions</a>
       </h2>
@@ -1595,7 +1595,7 @@
 </span><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">xyz</span><span class="special">::</span><span class="identifier">foo</span><span class="special">,</span> <span class="identifier">obj</span><span class="special">,</span> <span class="number">100</span><span class="special">)</span> <span class="comment">// obj.foo(100)
 </span></pre>
 <a name="phoenix.composite.bind.binding_member_variables"></a><h2>
-<a name="id482292"></a>
+<a name="id482250"></a>
         <a href="composite.html#phoenix.composite.bind.binding_member_variables">Binding Member
         Variables</a>
       </h2>

Modified: branches/release/libs/spirit/phoenix/doc/html/phoenix/container.html
==============================================================================
--- branches/release/libs/spirit/phoenix/doc/html/phoenix/container.html (original)
+++ branches/release/libs/spirit/phoenix/doc/html/phoenix/container.html 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -143,7 +143,7 @@
       does not use the member "dot" syntax.
     </p>
 <div class="table">
-<a name="id483029"></a><p class="title"><b>Table 1.5. Sample usage</b></p>
+<a name="id482988"></a><p class="title"><b>Table 1.5. Sample usage</b></p>
 <table class="table" summary="Sample usage">
 <colgroup>
 <col>
@@ -216,7 +216,7 @@
       <span class="inlinemediaobject"><img src="../images/tip.png" alt="tip"></span> Arguments in brackets denote optional parameters.
     </p></div>
 <div class="table">
-<a name="id483407"></a><p class="title"><b>Table 1.6. Lazy STL Container Functions</b></p>
+<a name="id483365"></a><p class="title"><b>Table 1.6. Lazy STL Container Functions</b></p>
 <table class="table" summary="Lazy STL Container Functions">
 <colgroup>
 <col>

Modified: branches/release/libs/spirit/phoenix/doc/html/phoenix/inside_phoenix.html
==============================================================================
--- branches/release/libs/spirit/phoenix/doc/html/phoenix/inside_phoenix.html (original)
+++ branches/release/libs/spirit/phoenix/doc/html/phoenix/inside_phoenix.html 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -43,7 +43,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="phoenix.inside_phoenix.actors_in_detail"></a>Actors In Detail</h3></div></div></div>
 <a name="phoenix.inside_phoenix.actors_in_detail.actor_concept"></a><h3>
-<a name="id495887"></a>
+<a name="id495846"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.actors_in_detail.actor_concept">Actor
         Concept</a>
       </h3>
@@ -63,7 +63,7 @@
         </p></td></tr>
 </table></div>
 <a name="phoenix.inside_phoenix.actors_in_detail.actor_template_class"></a><h3>
-<a name="id495964"></a>
+<a name="id495923"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.actors_in_detail.actor_template_class">actor
         template class</a>
       </h3>
@@ -103,7 +103,7 @@
 </span><span class="special">};</span>
 </pre>
 <div class="table">
-<a name="id496749"></a><p class="title"><b>Table 1.10. Actor Concept Requirements</b></p>
+<a name="id496708"></a><p class="title"><b>Table 1.10. Actor Concept Requirements</b></p>
 <table class="table" summary="Actor Concept Requirements">
 <colgroup>
 <col>
@@ -186,7 +186,7 @@
 </table>
 </div>
 <a name="phoenix.inside_phoenix.actors_in_detail.eval_concept"></a><h3>
-<a name="id497061"></a>
+<a name="id497020"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.actors_in_detail.eval_concept">Eval
         Concept</a>
       </h3>
@@ -200,7 +200,7 @@
         <a href="inside_phoenix.html#phoenix.inside_phoenix.actor_example" title="Actor Example">next section</a>.
       </p>
 <div class="table">
-<a name="id497156"></a><p class="title"><b>Table 1.11. Eval Concept Requirements</b></p>
+<a name="id497115"></a><p class="title"><b>Table 1.11. Eval Concept Requirements</b></p>
 <table class="table" summary="Eval Concept Requirements">
 <colgroup>
 <col>
@@ -247,7 +247,7 @@
 </table>
 </div>
 <a name="phoenix.inside_phoenix.actors_in_detail.constructors"></a><h3>
-<a name="id497328"></a>
+<a name="id497287"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.actors_in_detail.constructors">Constructors</a>
       </h3>
 <p>
@@ -278,7 +278,7 @@
 </td></tr>
 </table></div>
 <a name="phoenix.inside_phoenix.actors_in_detail.function_call_operators"></a><h3>
-<a name="id497414"></a>
+<a name="id497372"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.actors_in_detail.function_call_operators">Function
         Call Operators</a>
       </h3>
@@ -308,7 +308,7 @@
 </td></tr>
 </table></div>
 <a name="phoenix.inside_phoenix.actors_in_detail.environment"></a><h3>
-<a name="id497586"></a>
+<a name="id497544"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.actors_in_detail.environment">Environment</a>
       </h3>
 <p>
@@ -319,7 +319,7 @@
         class is a model of.
       </p>
 <div class="table">
-<a name="id497664"></a><p class="title"><b>Table 1.12. Environment Concept Requirements</b></p>
+<a name="id497623"></a><p class="title"><b>Table 1.12. Environment Concept Requirements</b></p>
 <table class="table" summary="Environment Concept Requirements">
 <colgroup>
 <col>
@@ -388,7 +388,7 @@
         such as local variables, etc.
       </p>
 <a name="phoenix.inside_phoenix.actors_in_detail.apply_actor"></a><h3>
-<a name="id497880"></a>
+<a name="id497839"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.actors_in_detail.apply_actor">apply_actor</a>
       </h3>
 <p>
@@ -432,7 +432,7 @@
 <span class="special">}</span>
 </pre>
 <a name="phoenix.inside_phoenix.actors_in_detail.actor_result"></a><h3>
-<a name="id498561"></a>
+<a name="id498520"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.actors_in_detail.actor_result">actor_result</a>
       </h3>
 <p>
@@ -556,7 +556,7 @@
         </p></td></tr>
 </table></div>
 <a name="phoenix.inside_phoenix.composites_in_detail.composite_template_class"></a><h2>
-<a name="id499858"></a>
+<a name="id499816"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.composites_in_detail.composite_template_class">composite
         template class</a>
       </h2>
@@ -590,7 +590,7 @@
 <span class="special">};</span>
 </pre>
 <a name="phoenix.inside_phoenix.composites_in_detail.evaltuple"></a><h2>
-<a name="id500464"></a>
+<a name="id500422"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.composites_in_detail.evaltuple">EvalTuple</a>
       </h2>
 <p>
@@ -602,7 +602,7 @@
         base class.
       </p>
 <a name="phoenix.inside_phoenix.composites_in_detail.evalpolicy"></a><h2>
-<a name="id500575"></a>
+<a name="id500533"></a>
         <a href="inside_phoenix.html#phoenix.inside_phoenix.composites_in_detail.evalpolicy">EvalPolicy</a>
       </h2>
 <p>
@@ -617,7 +617,7 @@
         <span class="inlinemediaobject"><img src="../images/funnel_out.png" alt="funnel_out"></span>
       </p>
 <div class="table">
-<a name="id500664"></a><p class="title"><b>Table 1.13. EvalPolicy Requirements</b></p>
+<a name="id500623"></a><p class="title"><b>Table 1.13. EvalPolicy Requirements</b></p>
 <table class="table" summary="EvalPolicy Requirements">
 <colgroup>
 <col>

Modified: branches/release/libs/spirit/phoenix/doc/html/phoenix/organization.html
==============================================================================
--- branches/release/libs/spirit/phoenix/doc/html/phoenix/organization.html (original)
+++ branches/release/libs/spirit/phoenix/doc/html/phoenix/organization.html 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -47,7 +47,7 @@
       files. There are no object files to link against.
     </p>
 <a name="phoenix.organization.core"></a><h2>
-<a name="id461589"></a>
+<a name="id461546"></a>
       <a href="organization.html#phoenix.organization.core">Core</a>
     </h2>
 <p>
@@ -76,7 +76,7 @@
       again be another composite.
     </p>
 <div class="table">
-<a name="id461653"></a><p class="title"><b>Table 1.2. Modules</b></p>
+<a name="id461610"></a><p class="title"><b>Table 1.2. Modules</b></p>
 <table class="table" summary="Modules">
 <colgroup>
 <col>
@@ -204,7 +204,7 @@
       core module is defined in <tt class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">home</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></tt>.
     </p>
 <div class="table">
-<a name="id462029"></a><p class="title"><b>Table 1.3. Includes</b></p>
+<a name="id461986"></a><p class="title"><b>Table 1.3. Includes</b></p>
 <table class="table" summary="Includes">
 <colgroup>
 <col>

Modified: branches/release/libs/spirit/phoenix/doc/html/phoenix/primitives.html
==============================================================================
--- branches/release/libs/spirit/phoenix/doc/html/phoenix/primitives.html (original)
+++ branches/release/libs/spirit/phoenix/doc/html/phoenix/primitives.html 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -55,7 +55,7 @@
         an imaginary data-bin where a function argument will be placed.
       </p>
 <a name="phoenix.primitives.arguments.predefined_arguments"></a><h2>
-<a name="id463642"></a>
+<a name="id463599"></a>
         <a href="primitives.html#phoenix.primitives.arguments.predefined_arguments">Predefined
         Arguments</a>
       </h2>
@@ -95,7 +95,7 @@
         </p></td></tr>
 </table></div>
 <a name="phoenix.primitives.arguments.user_defined_arguments"></a><h2>
-<a name="id464368"></a>
+<a name="id464325"></a>
         <a href="primitives.html#phoenix.primitives.arguments.user_defined_arguments">User
         Defined Arguments</a>
       </h2>
@@ -120,7 +120,7 @@
 <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.primitives.arguments.evaluating_an_argument"></a><h2>
-<a name="id464587"></a>
+<a name="id464544"></a>
         <a href="primitives.html#phoenix.primitives.arguments.evaluating_an_argument">Evaluating
         an Argument</a>
       </h2>
@@ -149,7 +149,7 @@
 <span class="identifier">Hello</span> <span class="identifier">World</span>
 </pre>
 <a name="phoenix.primitives.arguments.extra_arguments"></a><h2>
-<a name="id464958"></a>
+<a name="id464915"></a>
         <a href="primitives.html#phoenix.primitives.arguments.extra_arguments">Extra Arguments</a>
       </h2>
 <p>
@@ -232,7 +232,7 @@
         but, as we'll see later on, there are situations where this is unavoidable.
       </p>
 <a name="phoenix.primitives.values.evaluating_a_value"></a><h2>
-<a name="id465730"></a>
+<a name="id465687"></a>
         <a href="primitives.html#phoenix.primitives.values.evaluating_a_value">Evaluating a
         Value</a>
       </h2>
@@ -293,7 +293,7 @@
 <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.primitives.references.evaluating_a_reference"></a><h2>
-<a name="id466360"></a>
+<a name="id466317"></a>
         <a href="primitives.html#phoenix.primitives.references.evaluating_a_reference">Evaluating
         a Reference</a>
       </h2>

Modified: branches/release/libs/spirit/phoenix/doc/html/phoenix/starter_kit.html
==============================================================================
--- branches/release/libs/spirit/phoenix/doc/html/phoenix/starter_kit.html (original)
+++ branches/release/libs/spirit/phoenix/doc/html/phoenix/starter_kit.html 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -59,7 +59,7 @@
       into high gear quickly.
     </p>
 <a name="phoenix.starter_kit.functors_everywhere"></a><h2>
-<a name="id387564"></a>
+<a name="id387510"></a>
       <a href="starter_kit.html#phoenix.starter_kit.functors_everywhere">Functors everywhere</a>
     </h2>
 <p>
@@ -94,7 +94,7 @@
         World"</span></tt>.
       </p>
 <a name="phoenix.starter_kit.values.lazy_evaluation"></a><h2>
-<a name="id385446"></a>
+<a name="id385403"></a>
         <a href="starter_kit.html#phoenix.starter_kit.values.lazy_evaluation">Lazy Evaluation</a>
       </h2>
 <p>
@@ -124,7 +124,7 @@
         anything and defers the evaluation for later.
       </p>
 <a name="phoenix.starter_kit.values.callbacks"></a><h2>
-<a name="id456093"></a>
+<a name="id456050"></a>
         <a href="starter_kit.html#phoenix.starter_kit.values.callbacks">Callbacks</a>
       </h2>
 <p>
@@ -285,7 +285,7 @@
         <span class="inlinemediaobject"><img src="../images/tip.png" alt="tip"></span> Learn more about operators here.
       </p></div>
 <a name="phoenix.starter_kit.lazy_operators.first_practical_example"></a><h2>
-<a name="id457745"></a>
+<a name="id457702"></a>
         <a href="starter_kit.html#phoenix.starter_kit.lazy_operators.first_practical_example">First
         Practical Example</a>
       </h2>
@@ -430,7 +430,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><h2>
-<a name="id459094"></a>
+<a name="id459051"></a>
         <a href="starter_kit.html#phoenix.starter_kit.lazy_functions.things_to_note_">Things
         to note:</a>
       </h2>
@@ -465,7 +465,7 @@
         (See function.cpp)
       </p>
 <a name="phoenix.starter_kit.lazy_functions.predefined_lazy_functions"></a><h2>
-<a name="id459349"></a>
+<a name="id459305"></a>
         <a href="starter_kit.html#phoenix.starter_kit.lazy_functions.predefined_lazy_functions">Predefined
         Lazy Functions</a>
       </h2>

Modified: branches/release/libs/spirit/phoenix/test/algorithm/iteration.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/algorithm/iteration.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/algorithm/iteration.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -6,7 +6,7 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#include <boost/spirit/include/phoenix_stl.hpp/iteration.hpp>
+#include <boost/spirit/home/phoenix/stl/algorithm/iteration.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/detail/lightweight_test.hpp>
 

Modified: branches/release/libs/spirit/phoenix/test/algorithm/querying.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/algorithm/querying.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/algorithm/querying.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -7,7 +7,7 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#include <boost/spirit/include/phoenix_stl.hpp/querying.hpp>
+#include <boost/spirit/home/phoenix/stl/algorithm/querying.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/detail/lightweight_test.hpp>
 

Modified: branches/release/libs/spirit/phoenix/test/algorithm/querying2.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/algorithm/querying2.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/algorithm/querying2.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -6,7 +6,7 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#include <boost/spirit/include/phoenix_stl.hpp/querying.hpp>
+#include <boost/spirit/home/phoenix/stl/algorithm/querying.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/detail/lightweight_test.hpp>
 

Modified: branches/release/libs/spirit/phoenix/test/algorithm/transformation1.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/algorithm/transformation1.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/algorithm/transformation1.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -6,7 +6,7 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#include <boost/spirit/include/phoenix_stl.hpp/transformation.hpp>
+#include <boost/spirit/home/phoenix/stl/algorithm/transformation.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/detail/lightweight_test.hpp>
 

Modified: branches/release/libs/spirit/phoenix/test/algorithm/transformation2.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/algorithm/transformation2.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/algorithm/transformation2.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -6,7 +6,7 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#include <boost/spirit/include/phoenix_stl.hpp/transformation.hpp>
+#include <boost/spirit/home/phoenix/stl/algorithm/transformation.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/detail/lightweight_test.hpp>
 

Modified: branches/release/libs/spirit/phoenix/test/algorithm/transformation3.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/algorithm/transformation3.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/algorithm/transformation3.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -6,7 +6,7 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#include <boost/spirit/phoenix/stl/algorithm/transformation.hpp>
+#include <boost/spirit/home/phoenix/stl/algorithm/transformation.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/detail/lightweight_test.hpp>
 

Modified: branches/release/libs/spirit/phoenix/test/algorithm/transformation4.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/algorithm/transformation4.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/algorithm/transformation4.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -6,7 +6,7 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#include <boost/spirit/phoenix/stl/algorithm/transformation.hpp>
+#include <boost/spirit/home/phoenix/stl/algorithm/transformation.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/detail/lightweight_test.hpp>
 

Modified: branches/release/libs/spirit/phoenix/test/bind/bind_function_object_tests.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/bind/bind_function_object_tests.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/bind/bind_function_object_tests.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -101,6 +101,12 @@
     int const ic5 = 5;
     // testing consts
     BOOST_TEST(bind(sqr(), arg1)(ic5) == (ic5*ic5));
+
+ // From Steven Watanabe
+ sqr s;
+ int x = 2;
+ int result = bind(ref(s), _1)(x);
+ BOOST_TEST(result == 4);
 
     return boost::report_errors();
 }

Modified: branches/release/libs/spirit/phoenix/test/container/container_tests.hpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/container/container_tests.hpp (original)
+++ branches/release/libs/spirit/phoenix/test/container/container_tests.hpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -9,7 +9,7 @@
 
 #include <boost/detail/lightweight_test.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/phoenix/stl/container/container.hpp>
+#include <boost/spirit/home/phoenix/stl/container/container.hpp>
 
 #include <iostream>
 #include <typeinfo>

Modified: branches/release/libs/spirit/phoenix/test/operator/member.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/operator/member.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/operator/member.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -23,6 +23,7 @@
 
         int func(int n) const { return n; }
         int dunc() { return 10; }
+ int kunc() const { return 555; }
     };
 }
 
@@ -44,10 +45,13 @@
     BOOST_TEST(test.value == 2);
 
     BOOST_TEST((val(ptr)->*&Test::func)(3)() == 3);
+ int i = 33;
+ BOOST_TEST((arg1->*&Test::func)(arg2)(cptr, i) == i);
     BOOST_TEST((val(cptr)->*&Test::func)(4)() == 4);
     BOOST_TEST((val(ptr)->*&Test::dunc)()() == 10);
 
     BOOST_TEST((arg1->*&Test::func)(5)(ptr) == 5);
+ BOOST_TEST((arg1->*&Test::kunc)()(ptr));
 
     shared_ptr<Test> sptr(new Test(test));
 

Modified: branches/release/libs/spirit/phoenix/test/scope/bug_000008.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/scope/bug_000008.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/scope/bug_000008.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -15,6 +15,7 @@
 #include <boost/config.hpp>
 #include <boost/assert.hpp>
 #include <boost/detail/lightweight_test.hpp>
+#include <boost/spirit/home/phoenix/scope/dynamic.hpp>
 
 #if defined(DONT_HAVE_BOOST) \
     || !defined(BOOST_HAS_THREADS) \

Modified: branches/release/libs/spirit/phoenix/test/scope/dynamic_tests.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/scope/dynamic_tests.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/scope/dynamic_tests.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -12,7 +12,7 @@
 #include <boost/detail/lightweight_test.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_scope.hpp>
+#include <boost/spirit/home/phoenix/scope/dynamic.hpp>
 
 struct my_dynamic : ::boost::phoenix::dynamic<int, std::string, double>
 {

Modified: branches/release/libs/spirit/test/Jamfile
==============================================================================
--- branches/release/libs/spirit/test/Jamfile (original)
+++ branches/release/libs/spirit/test/Jamfile 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -20,40 +20,41 @@
 
     # run Qi tests
     [ run qi/actions.cpp : : : : ]
+ [ run qi/alternative.cpp : : : : ]
+ [ run qi/and_predicate.cpp : : : : ]
+ [ run qi/binary.cpp : : : : ]
     [ run qi/char.cpp : : : : ]
     [ run qi/char_class.cpp : : : : ]
- [ run qi/lit.cpp : : : : ]
- [ run qi/int.cpp : : : : ]
- [ run qi/uint.cpp : : : : ]
- [ run qi/real.cpp : : : : ]
+ [ run qi/confix.cpp : : : : ]
+ [ run qi/debug.cpp : : : : ]
+ [ run qi/difference.cpp : : : : ]
+ [ run qi/end.cpp : : : : ]
     [ run qi/eps.cpp : : : : ]
- [ run qi/none.cpp : : : : ]
+ [ run qi/expect.cpp : : : : ]
+ [ run qi/functor.cpp : : : : ]
+ [ run qi/grammar.cpp : : : : ]
+ [ run qi/int.cpp : : : : ]
+ [ run qi/kleene.cpp : : : : ]
     [ run qi/lazy.cpp : : : : ]
- [ run qi/tst.cpp : : : : ]
- [ run qi/symbols.cpp : : : : ]
- [ run qi/range_run.cpp : : : : ]
- [ run qi/no_case.cpp : : : : ]
     [ run qi/lexeme.cpp : : : : ]
- [ run qi/raw.cpp : : : : ]
- [ run qi/sequence.cpp : : : : ]
- [ run qi/alternative.cpp : : : : ]
- [ run qi/sequential_or.cpp : : : : ]
- [ run qi/permutation.cpp : : : : ]
- [ run qi/difference.cpp : : : : ]
+ [ run qi/lit.cpp : : : : ]
     [ run qi/list.cpp : : : : ]
+ [ run qi/no_case.cpp : : : : ]
+ [ run qi/none.cpp : : : : ]
+ [ run qi/not_predicate.cpp : : : : ]
     [ run qi/optional.cpp : : : : ]
- [ run qi/kleene.cpp : : : : ]
+ [ run qi/permutation.cpp : : : : ]
     [ run qi/plus.cpp : : : : ]
- [ run qi/and_predicate.cpp : : : : ]
- [ run qi/not_predicate.cpp : : : : ]
- [ run qi/expect.cpp : : : : ]
+ [ run qi/range_run.cpp : : : : ]
+ [ run qi/raw.cpp : : : : ]
+ [ run qi/real.cpp : : : : ]
     [ run qi/rule.cpp : : : : ]
- [ run qi/grammar.cpp : : : : ]
- [ run qi/functor.cpp : : : : ]
+ [ run qi/sequence.cpp : : : : ]
+ [ run qi/sequential_or.cpp : : : : ]
+ [ run qi/symbols.cpp : : : : ]
+ [ run qi/tst.cpp : : : : ]
+ [ run qi/uint.cpp : : : : ]
     [ run qi/match_manip.cpp : : : : ]
- [ run qi/binary.cpp : : : : ]
- [ run qi/debug.cpp : : : : ]
- [ run qi/end.cpp : : : : ]
 
     [ compile-fail qi/grammar_fail.cpp : : ]
     [ compile-fail qi/rule_fail.cpp : : ]
@@ -65,6 +66,7 @@
     [ run karma/case_handling.cpp : : : : ]
     [ run karma/center_alignment.cpp : : : : ]
     [ run karma/char.cpp : : : : karma_char ]
+ [ run karma/confix.cpp : : : : karma_confix ]
     [ run karma/delimiter.cpp : : : : ]
     [ run karma/eol.cpp : : : : karma_eol ]
     [ run karma/eps.cpp : : : : karma_eps ]

Added: branches/release/libs/spirit/test/karma/confix.cpp
==============================================================================
--- (empty file)
+++ branches/release/libs/spirit/test/karma/confix.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -0,0 +1,83 @@
+// Copyright (c) 2001-2008 Hartmut Kaiser
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <boost/config/warning_disable.hpp>
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/spirit/include/karma_auxiliary.hpp>
+#include <boost/spirit/include/karma_char.hpp>
+#include <boost/spirit/include/karma_string.hpp>
+#include <boost/spirit/include/karma_generate.hpp>
+
+#include <iostream>
+#include "test.hpp"
+
+namespace html
+{
+ ///////////////////////////////////////////////////////////////////////////////
+ // define a HTML tag helper generator
+ template <typename Char, typename Traits, typename Allocator>
+ inline boost::spirit::confix_spec<std::basic_string<Char, Traits, Allocator> >
+ tag (std::basic_string<Char, Traits, Allocator> const& tagname)
+ {
+ typedef std::basic_string<Char, Traits, Allocator> string_type;
+ return boost::spirit::confix_spec<string_type>(
+ string_type("<") + tagname + ">", string_type("</") + tagname + ">");
+ }
+
+ inline boost::spirit::confix_spec<std::string>
+ tag (char const* tagname)
+ {
+ return tag(std::string(tagname));
+ }
+
+ typedef boost::spirit::confix_spec<std::string> html_tag_type;
+
+ html_tag_type const ol = tag("ol");
+}
+
+///////////////////////////////////////////////////////////////////////////////
+int
+main()
+{
+ using namespace spirit_test;
+ using namespace boost::spirit;
+ using namespace boost::spirit::ascii;
+
+ {
+ BOOST_TEST((test("<tag>a</tag>",
+ confix("<tag>", "</tag>")[char_('a')])));
+ BOOST_TEST((test("// some C++ comment\n",
+ confix(lit("//"), eol)[" some C++ comment"])));
+ BOOST_TEST((test("<ol>some text</ol>", html::ol["some text"])));
+ }
+
+ {
+ BOOST_TEST((test(L"<tag>a</tag>",
+ confix(L"<tag>", L"</tag>")[wchar(L'a')])));
+ BOOST_TEST((test(L"// some C++ comment\n",
+ confix(wlit(L"//"), eol)[L" some C++ comment"])));
+ BOOST_TEST((test(L"<ol>some text</ol>", html::ol[L"some text"])));
+ }
+
+ {
+ BOOST_TEST((test_delimited("<tag> a </tag> ",
+ confix("<tag>", "</tag>")[char_('a')], space)));
+ BOOST_TEST((test_delimited("// some C++ comment \n ",
+ confix(lit("//"), eol)["some C++ comment"], space)));
+ BOOST_TEST((test_delimited("<ol> some text </ol> ",
+ html::ol["some text"], space)));
+ }
+
+ {
+ BOOST_TEST((test_delimited(L"<tag> a </tag> ",
+ confix(L"<tag>", L"</tag>")[wchar(L'a')], space)));
+ BOOST_TEST((test_delimited(L"// some C++ comment \n ",
+ confix(wlit(L"//"), eol)[L"some C++ comment"], space)));
+ BOOST_TEST((test_delimited(L"<ol> some text </ol> ",
+ html::ol[L"some text"], space)));
+ }
+
+ return boost::report_errors();
+}

Modified: branches/release/libs/spirit/test/karma/optional.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/optional.cpp (original)
+++ branches/release/libs/spirit/test/karma/optional.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -31,6 +31,11 @@
     }
 
     {
+ int opt = 10;
+ BOOST_TEST(test("10", -int_, opt));
+ }
+
+ {
         using namespace boost::spirit::ascii;
         
         boost::optional<int> opt;
@@ -40,6 +45,13 @@
         BOOST_TEST(test_delimited("10 ", -int_, opt, space));
     }
 
+ {
+ using namespace boost::spirit::ascii;
+
+ int opt = 10;
+ BOOST_TEST(test_delimited("10 ", -int_, opt, space));
+ }
+
     { // test action
         using namespace boost::phoenix;
         namespace phoenix = boost::phoenix;
@@ -56,6 +68,15 @@
         using namespace boost::phoenix;
         namespace phoenix = boost::phoenix;
         using namespace boost::spirit::arg_names;
+
+ int n = 1234;
+ BOOST_TEST(test("1234", (-int_)[_1 = phoenix::ref(n)]));
+ }
+
+ { // test action
+ using namespace boost::phoenix;
+ namespace phoenix = boost::phoenix;
+ using namespace boost::spirit::arg_names;
         using namespace boost::spirit::ascii;
 
         boost::optional<int> n;
@@ -65,5 +86,15 @@
         BOOST_TEST(test_delimited("1234 ", (-int_)[_1 = phoenix::ref(n)], space));
     }
 
+ { // test action
+ using namespace boost::phoenix;
+ namespace phoenix = boost::phoenix;
+ using namespace boost::spirit::arg_names;
+ using namespace boost::spirit::ascii;
+
+ int n = 1234;
+ BOOST_TEST(test_delimited("1234 ", (-int_)[_1 = phoenix::ref(n)], space));
+ }
+
     return boost::report_errors();
 }

Modified: branches/release/libs/spirit/test/karma/test.hpp
==============================================================================
--- branches/release/libs/spirit/test/karma/test.hpp (original)
+++ branches/release/libs/spirit/test/karma/test.hpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -49,14 +49,14 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<Char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
-
+
         string_type generated;
         bool result = karma::generate(std::back_inserter(generated), g);
-
+
         return result && generated == expected;
     }
 
@@ -65,14 +65,14 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<Char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
 
         string_type generated;
         bool result = karma::generate(std::back_inserter(generated), g);
-
+
         return result && generated == expected;
     }
 
@@ -83,14 +83,14 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<Char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
 
         string_type generated;
         bool result = karma::generate(std::back_inserter(generated), g, parameter);
-
+
         return result && generated == expected;
     }
 
@@ -100,14 +100,14 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<Char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
 
         string_type generated;
         bool result = karma::generate(std::back_inserter(generated), g, parameter);
-
+
         return result && generated == expected;
     }
 
@@ -118,14 +118,14 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<Char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
 
         string_type generated;
         bool result = karma::generate_delimited(std::back_inserter(generated), g, d);
-
+
         return result && generated == expected;
     }
 
@@ -135,14 +135,14 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<Char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
 
         string_type generated;
         bool result = karma::generate_delimited(std::back_inserter(generated), g, d);
-
+
         return result && generated == expected;
     }
 
@@ -154,7 +154,7 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<Char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
@@ -162,7 +162,7 @@
         string_type generated;
         bool result = karma::generate_delimited(std::back_inserter(generated),
             g, parameter, d);
-
+
         return result && generated == expected;
     }
 
@@ -173,7 +173,7 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<Char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
@@ -181,7 +181,7 @@
         string_type generated;
         bool result = karma::generate_delimited(std::back_inserter(generated),
             g, parameter, d);
-
+
         return result && generated == expected;
     }
 
@@ -193,14 +193,14 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
 
         string_type generated;
         bool result = karma::generate(std::back_inserter(generated), g);
-
+
         return result && !std::memcmp(generated.c_str(), expected, size);
     }
 
@@ -212,14 +212,14 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
 
         string_type generated;
         bool result = karma::generate(std::back_inserter(generated), g, parameter);
-
+
         return result && !std::memcmp(generated.c_str(), expected, size);
     }
 
@@ -231,7 +231,7 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
@@ -239,7 +239,7 @@
         string_type generated;
         bool result = karma::generate_delimited(std::back_inserter(generated),
             g, d);
-
+
         return result && !std::memcmp(generated.c_str(), expected, size);
     }
 
@@ -251,7 +251,7 @@
     {
         namespace karma = boost::spirit::karma;
         typedef std::basic_string<char> string_type;
-
+
         // we don't care about the result of the "what" function.
         // we only care that all generators have it:
         karma::what(g);
@@ -259,7 +259,7 @@
         string_type generated;
         bool result = karma::generate_delimited(std::back_inserter(generated),
             g, parameter, d);
-
+
         return result && !std::memcmp(generated.c_str(), expected, size);
     }
 

Added: branches/release/libs/spirit/test/qi/confix.cpp
==============================================================================
--- (empty file)
+++ branches/release/libs/spirit/test/qi/confix.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -0,0 +1,71 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+ Copyright (c) 2001-2008 Hartmut Kaiser
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================*/
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/spirit/include/qi_string.hpp>
+#include <boost/spirit/include/qi_auxiliary.hpp>
+#include <boost/spirit/include/qi_numeric.hpp>
+#include <boost/spirit/include/qi_char.hpp>
+#include <boost/spirit/include/qi_parse.hpp>
+#include <boost/spirit/include/support_argument.hpp>
+
+#include <iostream>
+#include "test.hpp"
+
+namespace html
+{
+ ///////////////////////////////////////////////////////////////////////////////
+ // define a HTML tag helper generator
+ template <typename Char, typename Traits, typename Allocator>
+ inline boost::spirit::confix_spec<std::basic_string<Char, Traits, Allocator> >
+ tag (std::basic_string<Char, Traits, Allocator> const& tagname)
+ {
+ typedef std::basic_string<Char, Traits, Allocator> string_type;
+ return boost::spirit::confix_spec<string_type>(
+ string_type("<") + tagname + ">", string_type("</") + tagname + ">");
+ }
+
+ inline boost::spirit::confix_spec<std::string>
+ tag (char const* tagname)
+ {
+ return tag(std::string(tagname));
+ }
+
+ typedef boost::spirit::confix_spec<std::string> html_tag_type;
+
+ html_tag_type const ol = tag("ol");
+}
+
+int
+main()
+{
+ using spirit_test::test;
+ using namespace boost::spirit;
+ using namespace boost::spirit::ascii;
+
+ {
+ BOOST_TEST(test("<tag>10</tag>", confix("<tag>", "</tag>")[int_]));
+ BOOST_TEST(test(L"<tag>10</tag>", confix(L"<tag>", L"</tag>")[int_]));
+ BOOST_TEST(test("//10\n", confix(lit("//"), eol)[int_]));
+ BOOST_TEST(test(L"//10\n", confix(wlit("//"), eol)[int_]));
+ BOOST_TEST(test("<ol>10</ol>", html::ol[int_]));
+ BOOST_TEST(test(L"<ol>10</ol>", html::ol[int_]));
+ }
+
+ {
+ BOOST_TEST(test(" <tag> 10 </tag>", confix("<tag>", "</tag>")[int_],
+ ascii::space));
+ BOOST_TEST(test(L" <tag> 10 </tag>", confix(L"<tag>", L"</tag>")[int_],
+ ascii::space));
+ BOOST_TEST(test("// 10 \n", confix(lit("//"), eol)[int_], ascii::space));
+ BOOST_TEST(test(L"// 10 \n", confix(wlit("//"), eol)[int_], ascii::space));
+ BOOST_TEST(test(" <ol> 10 </ol>", html::ol[int_], ascii::space));
+ BOOST_TEST(test(L" <ol> 10 </ol>", html::ol[int_], ascii::space));
+ }
+
+ return boost::report_errors();
+}

Added: branches/release/libs/spirit/test/repeat_ast_tests.cpp
==============================================================================
--- (empty file)
+++ branches/release/libs/spirit/test/repeat_ast_tests.cpp 2008-10-10 10:47:53 EDT (Fri, 10 Oct 2008)
@@ -0,0 +1,95 @@
+/*=============================================================================
+ Copyright (c) 2004 Chris Hoeppler
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to the Boost Software
+ License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================*/
+
+// This test verifies, that reapeat_p et.al. work correctly while using AST's
+
+# include <map>
+# include <boost/detail/lightweight_test.hpp>
+# include <iostream>
+# include <string>
+
+# include <boost/spirit/core.hpp>
+# include <boost/spirit/utility/loops.hpp>
+# include <boost/spirit/tree/ast.hpp>
+# include <boost/spirit/tree/tree_to_xml.hpp>
+
+using namespace boost::spirit;
+
+static const int numID = 1;
+static const int funcID = 2;
+static const int expressionID = 3;
+
+struct grammar_fail : public grammar<grammar_fail>
+{
+ template <typename ScannerT>
+ struct definition
+ {
+ definition(grammar_fail const& /*self */)
+ {
+ num = leaf_node_d[real_p];
+ func = root_node_d[ch_p('+') | '-']
+ >> repeat_p(2)[expression];
+ expression = func | num;
+ }
+ rule<ScannerT, parser_context<>, parser_tag<numID> > num;
+ rule<ScannerT, parser_context<>, parser_tag<funcID> > func;
+ typedef rule<ScannerT, parser_context<>, parser_tag<expressionID> > expr_t;
+ expr_t expression;
+ expr_t const& start() const { return expression; }
+ };
+};
+struct grammar_success : public grammar<grammar_success>
+{
+ template <typename ScannerT>
+ struct definition
+ {
+ definition(grammar_success const& /*self */)
+ {
+ num = leaf_node_d[real_p];
+ func = root_node_d[ch_p('+') | '-']
+ >> expression >> expression; // line differing from grammar_fail
+ expression = func | num;
+ }
+ rule<ScannerT, parser_context<>, parser_tag<numID> > num;
+ rule<ScannerT, parser_context<>, parser_tag<funcID> > func;
+ typedef rule<ScannerT, parser_context<>, parser_tag<expressionID> > expr_t;
+ expr_t expression;
+ expr_t const& start() const { return expression; }
+ };
+};
+
+int main() {
+
+ std::map<parser_id, std::string> rule_names;
+ rule_names[expressionID] = "expression";
+ rule_names[funcID] = "func";
+ rule_names[numID] = "num";
+
+ std::string test("+ 1 - 2 3");
+
+// case 1
+ grammar_fail g_fail;
+ tree_parse_info<> info1 = ast_parse(test.c_str(), g_fail, space_p);
+ BOOST_TEST(info1.full);
+
+ //std::cout << "...Case 1: Using repeat_p\n";
+ //tree_to_xml(std::cerr, info1.trees, test, rule_names);
+
+// case 2
+ grammar_success g_success;
+ tree_parse_info<> info2 = ast_parse(test.c_str(), g_success, space_p);
+ BOOST_TEST(info2.full);
+
+ //std::cout << "...Case 2: No repeat_p\n";
+ //tree_to_xml(std::cerr, info2.trees, test, rule_names);
+ // could be used for test case instead of printing the xml stuff:
+ BOOST_TEST(info2.trees.begin()->children.size() == 2);
+ BOOST_TEST(info1.trees.begin()->children.size() == 2);
+ return boost::report_errors();
+}


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