$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r57773 - in branches/quickbook-1.5-spirit2: . detail
From: daniel_james_at_[hidden]
Date: 2009-11-18 18:10:31
Author: danieljames
Date: 2009-11-18 18:10:29 EST (Wed, 18 Nov 2009)
New Revision: 57773
URL: http://svn.boost.org/trac/boost/changeset/57773
Log:
Use phoenix bind.
Text files modified: 
   branches/quickbook-1.5-spirit2/code_snippet.hpp        |    26 +++++++++++++++-----------              
   branches/quickbook-1.5-spirit2/detail/actions.cpp      |     1 -                                       
   branches/quickbook-1.5-spirit2/detail/post_process.cpp |    23 +++++++++++++----------                 
   branches/quickbook-1.5-spirit2/detail/quickbook.hpp    |    38 +++++++++++++++++++-------------------  
   4 files changed, 47 insertions(+), 41 deletions(-)
Modified: branches/quickbook-1.5-spirit2/code_snippet.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/code_snippet.hpp	(original)
+++ branches/quickbook-1.5-spirit2/code_snippet.hpp	2009-11-18 18:10:29 EST (Wed, 18 Nov 2009)
@@ -11,13 +11,17 @@
 
 #include <boost/spirit/include/classic_core.hpp>
 #include <boost/spirit/include/classic_actor.hpp>
-#include <boost/bind.hpp>
+#include <boost/spirit/include/phoenix_core.hpp>
+#include <boost/spirit/include/phoenix_bind.hpp>
 #include "./grammars.hpp"
 #include "./detail/template_stack.hpp"
 #include "./detail/actions.hpp"
 
 namespace quickbook
 {
+    namespace ph = boost::phoenix;
+    using namespace ph::arg_names;
+
     template <typename Scanner>
     python_code_snippet_grammar::definition<Scanner>::definition(
         python_code_snippet_grammar const& self)
@@ -26,7 +30,7 @@
     
         start_ =
             +(
-                    snippet                     [boost::bind(&actions_type::compile, &actions, _1, _2)]
+                    snippet                     [ph::bind(&actions_type::compile, &actions, _1, _2)]
                 |   classic::anychar_p
             )
             ;
@@ -45,7 +49,7 @@
         code_elements =
                 escaped_comment
             |   ignore
-            |   (classic::anychar_p - "#]")     [boost::bind(&actions_type::pass_thru, &actions, _1, _2)]
+            |   (classic::anychar_p - "#]")     [ph::bind(&actions_type::pass_thru, &actions, _1, _2)]
             ;
 
         ignore =
@@ -63,10 +67,10 @@
         escaped_comment =
                 *classic::space_p >> "#`"
                 >> ((*(classic::anychar_p - classic::eol_p))
-                    >> classic::eol_p)          [boost::bind(&actions_type::escaped_comment, &actions, _1, _2)]
+                    >> classic::eol_p)          [ph::bind(&actions_type::escaped_comment, &actions, _1, _2)]
             |   *classic::space_p >> "\"\"\"`"
                 >> (*(classic::anychar_p - "\"\"\""))
-                                                [boost::bind(&actions_type::escaped_comment, &actions, _1, _2)]
+                                                [ph::bind(&actions_type::escaped_comment, &actions, _1, _2)]
                 >> "\"\"\""
             ;
     }
@@ -79,7 +83,7 @@
     
         start_ =
             +(
-                    snippet                     [boost::bind(&actions_type::compile, &actions, _1, _2)]
+                    snippet                     [ph::bind(&actions_type::compile, &actions, _1, _2)]
                 |   classic::anychar_p
             )
             ;
@@ -107,18 +111,18 @@
             |   line_callout
             |   inline_callout
             |   (classic::anychar_p - "//]" - "/*]*/")
-                                                [boost::bind(&actions_type::pass_thru, &actions, _1, _2)]
+                                                [ph::bind(&actions_type::pass_thru, &actions, _1, _2)]
             ;
 
         inline_callout =
             "/*<"
-            >> (*(classic::anychar_p - ">*/"))  [boost::bind(&actions_type::inline_callout, &actions, _1, _2)]
+            >> (*(classic::anychar_p - ">*/"))  [ph::bind(&actions_type::inline_callout, &actions, _1, _2)]
             >> ">*/"
             ;
 
         line_callout =
             "/*<<"
-            >> (*(classic::anychar_p - ">>*/")) [boost::bind(&actions_type::line_callout, &actions, _1, _2)]
+            >> (*(classic::anychar_p - ">>*/")) [ph::bind(&actions_type::line_callout, &actions, _1, _2)]
             >> ">>*/"
             >> *classic::space_p
             ;
@@ -138,10 +142,10 @@
         escaped_comment =
                 *classic::space_p >> "//`"
                 >> ((*(classic::anychar_p - classic::eol_p))
-                    >> classic::eol_p)          [boost::bind(&actions_type::escaped_comment, &actions, _1, _2)]
+                    >> classic::eol_p)          [ph::bind(&actions_type::escaped_comment, &actions, _1, _2)]
             |   *classic::space_p >> "/*`"
                 >> (*(classic::anychar_p - "*/"))
-                                                [boost::bind(&actions_type::escaped_comment, &actions, _1, _2)]
+                                                [ph::bind(&actions_type::escaped_comment, &actions, _1, _2)]
                 >> "*/"
             ;
     }
Modified: branches/quickbook-1.5-spirit2/detail/actions.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/detail/actions.cpp	(original)
+++ branches/quickbook-1.5-spirit2/detail/actions.cpp	2009-11-18 18:10:29 EST (Wed, 18 Nov 2009)
@@ -10,7 +10,6 @@
 =============================================================================*/
 #include <numeric>
 #include <functional>
-#include <boost/bind.hpp>
 #include <boost/filesystem/convenience.hpp>
 #include <boost/filesystem/fstream.hpp>
 #include <boost/lexical_cast.hpp>
Modified: branches/quickbook-1.5-spirit2/detail/post_process.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/detail/post_process.cpp	(original)
+++ branches/quickbook-1.5-spirit2/detail/post_process.cpp	2009-11-18 18:10:29 EST (Wed, 18 Nov 2009)
@@ -9,7 +9,8 @@
 #include "./post_process.hpp"
 #include "./utils.hpp"
 #include <boost/spirit/include/classic_core.hpp>
-#include <boost/bind.hpp>
+#include <boost/spirit/include/phoenix_core.hpp>
+#include <boost/spirit/include/phoenix_bind.hpp>
 #include <set>
 #include <stack>
 #include <cctype>
@@ -17,7 +18,9 @@
 namespace quickbook
 {
     using namespace boost::spirit;
-    using boost::bind;
+    namespace ph = boost::phoenix;
+    using namespace ph::arg_names;
+    using ph::bind;
     typedef std::string::const_iterator iter_type;
 
     struct printer
@@ -264,7 +267,7 @@
         {
             definition(tidy_grammar const& self)
             {
-                tag = (classic::lexeme_d[+(classic::alpha_p | '_' | ':')])  [bind(&tidy_grammar::do_tag, &self, _1, _2)];
+                tag = (classic::lexeme_d[+(classic::alpha_p | '_' | ':')])  [ph::bind(&tidy_grammar::do_tag, &self, _1, _2)];
 
                 code =
                         "<programlisting>"
@@ -280,14 +283,14 @@
                     classic::str_p("<!--quickbook-escape-prefix-->") >>
                     (*(classic::anychar_p - classic::str_p("<!--quickbook-escape-postfix-->")))
                     [
-                        bind(&tidy_grammar::do_escape, &self, _1, _2)
+                        ph::bind(&tidy_grammar::do_escape, &self, _1, _2)
                     ]
                     >>  classic::lexeme_d
                         [
                             classic::str_p("<!--quickbook-escape-postfix-->") >>
                             (*classic::space_p)
                             [
-                                bind(&tidy_grammar::do_escape_post, &self, _1, _2)
+                                ph::bind(&tidy_grammar::do_escape_post, &self, _1, _2)
                             ]
                         ]
                     ;
@@ -304,11 +307,11 @@
 
                 markup =
                         escape
-                    |   code            [bind(&tidy_grammar::do_code, &self, _1, _2)]
-                    |   start_end_tag   [bind(&tidy_grammar::do_start_end_tag, &self, _1, _2)]
-                    |   start_tag       [bind(&tidy_grammar::do_start_tag, &self, _1, _2)]
-                    |   end_tag         [bind(&tidy_grammar::do_end_tag, &self, _1, _2)]
-                    |   content         [bind(&tidy_grammar::do_content, &self, _1, _2)]
+                    |   code            [ph::bind(&tidy_grammar::do_code, &self, _1, _2)]
+                    |   start_end_tag   [ph::bind(&tidy_grammar::do_start_end_tag, &self, _1, _2)]
+                    |   start_tag       [ph::bind(&tidy_grammar::do_start_tag, &self, _1, _2)]
+                    |   end_tag         [ph::bind(&tidy_grammar::do_end_tag, &self, _1, _2)]
+                    |   content         [ph::bind(&tidy_grammar::do_content, &self, _1, _2)]
                     ;
 
                 tidy = +markup;
Modified: branches/quickbook-1.5-spirit2/detail/quickbook.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/detail/quickbook.hpp	(original)
+++ branches/quickbook-1.5-spirit2/detail/quickbook.hpp	2009-11-18 18:10:29 EST (Wed, 18 Nov 2009)
@@ -12,35 +12,35 @@
 #if !defined(BOOST_SPIRIT_QUICKBOOK_QUICKBOOK_HPP)
 #define BOOST_SPIRIT_QUICKBOOK_QUICKBOOK_HPP
 
+#include <boost/spirit/include/phoenix_function.hpp>
+
 namespace quickbook
 {
     extern unsigned qbk_major_version;
     extern unsigned qbk_minor_version;
     extern unsigned qbk_version_n; // qbk_major_version * 100 + qbk_minor_version
 
-    struct quickbook_range {
-        template <typename Arg>
-        struct result
-        {
-            typedef bool type;
-        };
-        
-        quickbook_range(unsigned min_, unsigned max_)
-            : min_(min_), max_(max_) {}
+    struct quickbook_since_impl {
+        template <typename Arg1>
+        struct result { typedef bool type; };
         
-        bool operator()() const {
-            return qbk_version_n >= min_ && qbk_version_n < max_;
+        bool operator()(unsigned min_) const {
+            return qbk_version_n >= min_;
         }
+    };
 
-        unsigned min_, max_;
+    struct quickbook_before_impl {
+        template <typename Arg1>
+        struct result { typedef bool type; };
+        
+        bool operator()(unsigned max_) const {
+            return qbk_version_n < max_;
+        }
     };
-    
-    inline quickbook_range qbk_since(unsigned min_) {
-        return quickbook_range(min_, 999);
-    }
-    
-    inline quickbook_range qbk_before(unsigned max_) {
-        return quickbook_range(0, max_);
+
+    namespace {
+        boost::phoenix::function<quickbook_since_impl> qbk_since;
+        boost::phoenix::function<quickbook_before_impl> qbk_before;
     }
 }