Update of /cvsroot/boost/boost/boost/xpressive/detail/static/transforms
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv28529

Modified Files:
        as_quantifier.hpp transform.hpp 
Log Message:
our lives are frittered away by detail. simplify, simplify

Index: as_quantifier.hpp
===================================================================
RCS file: 
/cvsroot/boost/boost/boost/xpressive/detail/static/transforms/as_quantifier.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- as_quantifier.hpp   6 Apr 2007 02:54:23 -0000       1.6
+++ as_quantifier.hpp   10 Apr 2007 18:16:34 -0000      1.7
@@ -38,28 +38,30 @@
     struct as_simple_quantifier
       : Grammar
     {
+        typedef proto::trans::arg<Grammar> grammar_type;
         as_simple_quantifier();
 
         template<typename Expr, typename State, typename Visitor>
         struct apply
         {
-            typedef simple_repeat_matcher<
-                typename Grammar::template apply<Expr, true_xpression, 
Visitor>::type
-              , Greedy
-            > type;
+            typedef typename grammar_type::template apply<Expr, 
true_xpression, Visitor>::type xpr_type;
+            typedef simple_repeat_matcher<xpr_type, Greedy> matcher_type;
+            typedef typename proto::terminal<matcher_type>::type type;
         };
 
         template<typename Expr, typename State, typename Visitor>
         static typename apply<Expr, State, Visitor>::type
         call(Expr const &expr, State const &state, Visitor &visitor)
         {
-            typename Grammar::template apply<Expr, true_xpression, 
Visitor>::type const &xpr =
-                Grammar::call(expr, true_xpression(), visitor);
-            return typename apply<Expr, State, Visitor>::type(
-                xpr
-              , min_type<typename Expr::tag_type>::value
-              , max_type<typename Expr::tag_type>::value
-              , xpr.get_width().value()
+            typename apply<Expr, State, Visitor>::xpr_type const &xpr =
+                grammar_type::call(expr, true_xpression(), visitor);
+            return apply<Expr, State, Visitor>::type::make(
+                typename apply<Expr, State, Visitor>::matcher_type(
+                    xpr
+                  , min_type<typename Expr::tag_type>::value
+                  , max_type<typename Expr::tag_type>::value
+                  , xpr.get_width().value()
+                )
             );
         }
     };

Index: transform.hpp
===================================================================
RCS file: 
/cvsroot/boost/boost/boost/xpressive/detail/static/transforms/transform.hpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- transform.hpp       6 Apr 2007 23:59:10 -0000       1.11
+++ transform.hpp       10 Apr 2007 18:16:34 -0000      1.12
@@ -44,6 +44,17 @@
     {};
 
     ///////////////////////////////////////////////////////////////////////////
+    // as_repeat
+    template<typename Tag, bool Greedy>
+    struct as_repeat
+      : proto::trans::conditional<
+            use_simple_repeat<proto::result_of::arg<mpl::_> >
+          , as_simple_quantifier<proto::unary_expr<Tag, Grammar>, Greedy>
+          , as_default_quantifier<proto::unary_expr<Tag, Grammar>, Greedy>
+        >
+    {};
+
+    ///////////////////////////////////////////////////////////////////////////
     // NonGreedyRepeatCases
     struct NonGreedyRepeatCases
     {
@@ -55,38 +66,22 @@
 
     template<>
     struct NonGreedyRepeatCases::case_<proto::tag::unary_star>
-      : proto::trans::conditional<
-            use_simple_repeat<proto::result_of::arg<mpl::_> >
-          , as_simple_quantifier<proto::trans::arg<proto::unary_star<Grammar> 
>, false>
-          , as_default_quantifier<proto::unary_star<Grammar>, false>
-        >
+      : as_repeat<proto::tag::unary_star, false>
     {};
 
     template<>
     struct NonGreedyRepeatCases::case_<proto::tag::unary_plus>
-      : proto::trans::conditional<
-            use_simple_repeat<proto::result_of::arg<mpl::_> >
-          , as_simple_quantifier<proto::trans::arg<proto::unary_plus<Grammar> 
>, false>
-          , as_default_quantifier<proto::unary_plus<Grammar>, false>
-        >
+      : as_repeat<proto::tag::unary_plus, false>
     {};
 
     template<>
     struct NonGreedyRepeatCases::case_<proto::tag::logical_not>
-      : proto::trans::conditional<
-            use_simple_repeat<proto::result_of::arg<mpl::_> >
-          , as_simple_quantifier<proto::trans::arg<proto::logical_not<Grammar> 
>, false>
-          , as_default_quantifier<proto::logical_not<Grammar>, false>
-        >
+      : as_repeat<proto::tag::logical_not, false>
     {};
 
     template<uint_t Min, uint_t Max>
     struct NonGreedyRepeatCases::case_<generic_quant_tag<Min, Max> >
-      : proto::trans::conditional<
-            use_simple_repeat<proto::result_of::arg<mpl::_> >
-          , 
as_simple_quantifier<proto::trans::arg<proto::unary_expr<generic_quant_tag<Min, 
Max>, Grammar> >, false>
-          , as_default_quantifier<proto::unary_expr<generic_quant_tag<Min, 
Max>, Grammar>, false>
-        >
+      : as_repeat<generic_quant_tag<Min, Max>, false>
     {};
 
     ///////////////////////////////////////////////////////////////////////////
@@ -165,49 +160,29 @@
 
     template<>
     struct Cases::case_<proto::tag::unary_star>
-      : proto::trans::conditional<
-            use_simple_repeat<proto::result_of::arg<mpl::_> >
-          , 
in_sequence<as_simple_quantifier<proto::trans::arg<proto::unary_star<Grammar> 
>, true> >
-          , 
proto::trans::compose<as_default_quantifier<proto::unary_star<Grammar>, true>, 
Grammar>
-        >
+      : proto::trans::compose<as_repeat<proto::tag::unary_star, true>, Grammar>
     {};
 
     template<>
     struct Cases::case_<proto::tag::unary_plus>
-      : proto::trans::conditional<
-            use_simple_repeat<proto::result_of::arg<mpl::_> >
-          , 
in_sequence<as_simple_quantifier<proto::trans::arg<proto::unary_plus<Grammar> 
>, true> >
-          , 
proto::trans::compose<as_default_quantifier<proto::unary_plus<Grammar>, true>, 
Grammar>
-        >
+      : proto::trans::compose<as_repeat<proto::tag::unary_plus, true>, Grammar>
     {};
 
     template<>
     struct Cases::case_<proto::tag::logical_not>
-      : proto::trans::conditional<
-            use_simple_repeat<proto::result_of::arg<mpl::_> >
-          , 
in_sequence<as_simple_quantifier<proto::trans::arg<proto::logical_not<Grammar> 
>, true> >
-          , 
proto::trans::compose<as_default_quantifier<proto::logical_not<Grammar>, true>, 
Grammar>
-        >
+      : proto::trans::compose<as_repeat<proto::tag::logical_not, true>, 
Grammar>
     {};
 
     template<uint_t Min, uint_t Max>
     struct Cases::case_<generic_quant_tag<Min, Max> >
-      : proto::trans::conditional<
-            use_simple_repeat<proto::result_of::arg<mpl::_> >
-          , 
in_sequence<as_simple_quantifier<proto::trans::arg<proto::unary_expr<generic_quant_tag<Min,
 Max>, Grammar> >, true> >
-          , 
proto::trans::compose<as_default_quantifier<proto::unary_expr<generic_quant_tag<Min,
 Max>, Grammar>, true>, Grammar>
-        >
+      : proto::trans::compose<as_repeat<generic_quant_tag<Min, Max>, true>, 
Grammar>
     {};
 
     template<>
     struct Cases::case_<proto::tag::unary_minus>
-      : proto::and_<
-            proto::unary_minus<proto::switch_<NonGreedyRepeatCases> >
-          , proto::trans::conditional<
-                
use_simple_repeat<proto::result_of::arg<proto::result_of::arg<mpl::_> > >
-              , 
in_sequence<proto::trans::arg<proto::unary_minus<proto::switch_<NonGreedyRepeatCases>
 > > >
-              , 
proto::trans::compose<proto::trans::arg<proto::unary_minus<proto::switch_<NonGreedyRepeatCases>
 > >, Grammar>
-            >
+      : proto::trans::compose<
+            
proto::trans::arg<proto::unary_minus<proto::switch_<NonGreedyRepeatCases> > >
+          , Grammar
         >
     {};
 


-------------------------------------------------------------------------
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