Update of /cvsroot/boost/boost/boost/spirit/tree
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv23355/tree

Modified Files:
        ast.hpp ast_fwd.hpp common.hpp parse_tree.hpp 
        parse_tree_fwd.hpp 
Log Message:
More fixes for CLiPP.

Index: ast.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/spirit/tree/ast.hpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- ast.hpp     14 Mar 2007 20:48:54 -0000      1.20
+++ ast.hpp     14 Mar 2007 23:08:35 -0000      1.21
@@ -34,7 +34,8 @@
         NodeFactoryT,
         ast_tree_policy<
             ast_match_policy<IteratorT, NodeFactoryT, T>,
-            NodeFactoryT
+            NodeFactoryT,
+            T
         >,
         T
     >
@@ -46,7 +47,8 @@
             NodeFactoryT,
             ast_tree_policy<
                 ast_match_policy<IteratorT, NodeFactoryT, T>,
-                NodeFactoryT
+                NodeFactoryT,
+                T
             >,
             T
         >
@@ -64,16 +66,15 @@
 };
 
 //////////////////////////////////
-template <typename MatchPolicyT, typename NodeFactoryT>
+template <typename MatchPolicyT, typename NodeFactoryT, typename T>
 struct ast_tree_policy :
     public common_tree_tree_policy<MatchPolicyT, NodeFactoryT>
 {
-    typedef
-        typename common_tree_tree_policy<MatchPolicyT, NodeFactoryT>::match_t
-        match_t;
+    typedef typename MatchPolicyT::match_t match_t;
     typedef typename MatchPolicyT::iterator_t iterator_t;
 
-    static void concat(match_t& a, match_t const& b)
+    template<typename MatchAT, typename MatchBT>
+    static void concat(MatchAT& a, MatchBT const& b)
     {
         BOOST_SPIRIT_ASSERT(a && b);
 
@@ -82,7 +83,7 @@
         BOOST_SPIRIT_DEBUG_OUT << "\n>>>AST concat. a = " << a <<
             "\n\tb = " << b << "<<<\n";
 #endif
-        typedef typename tree_match<iterator_t, NodeFactoryT>::container_t
+        typedef typename tree_match<iterator_t, NodeFactoryT, T>::container_t
             container_t;
 
         // test for size() is nessecary, because no_tree_gen_node leaves 
a.trees
@@ -140,7 +141,7 @@
         if (!m)
             return;
 
-        typedef typename tree_match<iterator_t, NodeFactoryT>::container_t
+        typedef typename tree_match<iterator_t, NodeFactoryT, T>::container_t
             container_t;
         typedef typename container_t::iterator cont_iterator_t;
         typedef typename NodeFactoryT::template factory<iterator_t> factory_t;
@@ -198,7 +199,10 @@
     struct tree_policy_selector<ast_match_policy<IteratorT, NodeFactoryT, T> >
     {
         typedef ast_tree_policy<
-            ast_match_policy<IteratorT, NodeFactoryT, T>, NodeFactoryT> type;
+            ast_match_policy<IteratorT, NodeFactoryT, T>, 
+            NodeFactoryT, 
+            T
+        > type;
     };
 
 } // namespace impl

Index: ast_fwd.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/spirit/tree/ast_fwd.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- ast_fwd.hpp 14 Mar 2007 20:48:54 -0000      1.2
+++ ast_fwd.hpp 14 Mar 2007 23:08:35 -0000      1.3
@@ -13,7 +13,11 @@
 
 namespace boost { namespace spirit {
 
-    template <typename MatchPolicyT, typename NodeFactoryT>
+    template <
+        typename MatchPolicyT, 
+        typename NodeFactoryT, 
+        typename T = nil_t
+    >
     struct ast_tree_policy;
 
     template <

Index: common.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/spirit/tree/common.hpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- common.hpp  14 Mar 2007 20:48:54 -0000      1.26
+++ common.hpp  14 Mar 2007 23:08:35 -0000      1.27
@@ -689,7 +689,7 @@
 
     template <typename PolicyT>
     common_tree_match_policy(PolicyT const & policies)
-        : match_policy(policies)
+        : match_policy((match_policy const &)policies)
     {
     }
 

Index: parse_tree.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/spirit/tree/parse_tree.hpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- parse_tree.hpp      14 Mar 2007 20:48:54 -0000      1.16
+++ parse_tree.hpp      14 Mar 2007 23:08:35 -0000      1.17
@@ -33,7 +33,8 @@
         NodeFactoryT,
         pt_tree_policy<
             pt_match_policy<IteratorT, NodeFactoryT, T>,
-            NodeFactoryT
+            NodeFactoryT,
+            T
         >,
         T
     >
@@ -45,7 +46,8 @@
             NodeFactoryT,
             pt_tree_policy<
                 pt_match_policy<IteratorT, NodeFactoryT, T>,
-                NodeFactoryT
+                NodeFactoryT,
+                T
             >,
             T
         >
@@ -63,16 +65,15 @@
 };
 
 //////////////////////////////////
-template <typename MatchPolicyT, typename NodeFactoryT>
+template <typename MatchPolicyT, typename NodeFactoryT, typename T>
 struct pt_tree_policy :
     public common_tree_tree_policy<MatchPolicyT, NodeFactoryT>
 {
-    typedef
-        typename common_tree_tree_policy<MatchPolicyT, NodeFactoryT>::match_t
-        match_t;
+    typedef typename MatchPolicyT::match_t match_t;
     typedef typename MatchPolicyT::iterator_t iterator_t;
 
-    static void concat(match_t& a, match_t const& b)
+    template<typename MatchAT, typename MatchBT>
+    static void concat(MatchAT& a, MatchBT const& b)
     {
         typedef typename match_t::attr_t attr_t;
         BOOST_SPIRIT_ASSERT(a && b);
@@ -89,7 +90,7 @@
             return;
 
         typedef typename NodeFactoryT::template factory<iterator_t> factory_t;
-        typedef typename tree_match<iterator_t, NodeFactoryT>::container_t
+        typedef typename tree_match<iterator_t, NodeFactoryT, T>::container_t
             container_t;
         typedef typename container_t::iterator cont_iterator_t;
 
@@ -122,7 +123,10 @@
     struct tree_policy_selector<pt_match_policy<IteratorT, NodeFactoryT, T> >
     {
         typedef pt_tree_policy<
-            pt_match_policy<IteratorT, NodeFactoryT, T>, NodeFactoryT> type;
+            pt_match_policy<IteratorT, NodeFactoryT, T>, 
+            NodeFactoryT, 
+            T
+        > type;
     };
 
 } // namespace impl

Index: parse_tree_fwd.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/spirit/tree/parse_tree_fwd.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- parse_tree_fwd.hpp  14 Mar 2007 20:48:54 -0000      1.2
+++ parse_tree_fwd.hpp  14 Mar 2007 23:08:35 -0000      1.3
@@ -11,7 +11,11 @@
 
 namespace boost { namespace spirit {
 
-    template <typename MatchPolicyT, typename NodeFactoryT>
+    template <
+        typename MatchPolicyT, 
+        typename NodeFactoryT,
+        typename T = nil_t
+    >
     struct pt_tree_policy;
 
     template <


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to