$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r60178 - in trunk/boost/spirit/home: qi/auto qi/char qi/string support support/char_encoding
From: joel_at_[hidden]
Date: 2010-03-05 01:59:04
Author: djowel
Date: 2010-03-05 01:59:03 EST (Fri, 05 Mar 2010)
New Revision: 60178
URL: http://svn.boost.org/trac/boost/changeset/60178
Log:
adding default_wide char_encoding
Added:
   trunk/boost/spirit/home/support/char_encoding/default_wide.hpp   (contents, props changed)
Text files modified: 
   trunk/boost/spirit/home/qi/auto/meta_create.hpp      |   146 ++++++++++++++++++++--------------------
   trunk/boost/spirit/home/qi/char/char.hpp             |    14 +-                                      
   trunk/boost/spirit/home/qi/string/symbols.hpp        |     4                                         
   trunk/boost/spirit/home/support/common_terminals.hpp |     2                                         
   4 files changed, 84 insertions(+), 82 deletions(-)
Modified: trunk/boost/spirit/home/qi/auto/meta_create.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/auto/meta_create.hpp	(original)
+++ trunk/boost/spirit/home/qi/auto/meta_create.hpp	2010-03-05 01:59:03 EST (Fri, 05 Mar 2010)
@@ -30,8 +30,8 @@
 {
     ///////////////////////////////////////////////////////////////////////////
     // compatible STL containers
-    template <typename Container> 
-    struct meta_create_container 
+    template <typename Container>
+    struct meta_create_container
     {
         typedef make_unary_proto_expr<
             typename Container::value_type
@@ -48,13 +48,13 @@
 
     ///////////////////////////////////////////////////////////////////////////
     // Fusion sequences
-    template <typename Sequence> 
-    struct meta_create_sequence 
+    template <typename Sequence>
+    struct meta_create_sequence
     {
         // create a mpl sequence from the given fusion sequence
         typedef typename mpl::fold<
             typename fusion::result_of::as_vector<Sequence>::type
-          , mpl::vector<>, mpl::push_back<mpl::_, mpl::_> 
+          , mpl::vector<>, mpl::push_back<mpl::_, mpl::_>
         >::type sequence_type;
 
         typedef make_nary_proto_expr<
@@ -70,10 +70,10 @@
     };
 
     ///////////////////////////////////////////////////////////////////////////
-    // the default is to use the standard streaming operator unless it's a 
+    // the default is to use the standard streaming operator unless it's a
     // STL container or a fusion sequence
 
-    // The default implementation will be chosen if no predefined mapping of 
+    // The default implementation will be chosen if no predefined mapping of
     // the data type T to a Qi component is defined.
     struct no_auto_mapping_exists {};
 
@@ -95,8 +95,8 @@
 
     ///////////////////////////////////////////////////////////////////////////
     // optional
-    template <typename T> 
-    struct meta_create<boost::optional<T> > 
+    template <typename T>
+    struct meta_create<boost::optional<T> >
     {
         typedef make_unary_proto_expr<
             T, proto::tag::negate, qi::domain
@@ -112,8 +112,8 @@
 
     ///////////////////////////////////////////////////////////////////////////
     // alternatives
-    template <BOOST_VARIANT_ENUM_PARAMS(typename T)> 
-    struct meta_create<boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)> > 
+    template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
+    struct meta_create<boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
     {
         typedef make_nary_proto_expr<
             typename boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)>::types
@@ -132,99 +132,99 @@
     // predefined specializations for primitive components
 
     // character generator
-    template <> 
-    struct meta_create<char> 
-    { 
-        typedef spirit::standard::char_type type; 
-        static type const& call() { return spirit::standard::char_; }
-    };
-    template <> 
-    struct meta_create<wchar_t> 
-    { 
-        typedef spirit::standard_wide::char_type type; 
-        static type const& call() { return spirit::standard_wide::char_; }
+    template <>
+    struct meta_create<char>
+    {
+        typedef spirit::default_::char_type type;
+        static type const& call() { return spirit::default_::char_; }
+    };
+    template <>
+    struct meta_create<wchar_t>
+    {
+        typedef spirit::default_wide::char_type type;
+        static type const& call() { return spirit::default_wide::char_; }
     };
 
     // boolean generator
-    template <> 
-    struct meta_create<bool> 
-    { 
-        typedef spirit::bool__type type; 
+    template <>
+    struct meta_create<bool>
+    {
+        typedef spirit::bool__type type;
         static type const& call() { return spirit::bool_; }
     };
 
     // integral generators
-    template <> 
-    struct meta_create<int> 
-    { 
-        typedef spirit::int__type type; 
+    template <>
+    struct meta_create<int>
+    {
+        typedef spirit::int__type type;
         static type const& call() { return spirit::int_; }
     };
-    template <> 
-    struct meta_create<short> 
-    { 
-        typedef spirit::short__type type; 
+    template <>
+    struct meta_create<short>
+    {
+        typedef spirit::short__type type;
         static type const& call() { return spirit::short_; }
     };
-    template <> 
-    struct meta_create<long> 
+    template <>
+    struct meta_create<long>
     {
-        typedef spirit::long__type type; 
+        typedef spirit::long__type type;
         static type const& call() { return spirit::long_; }
     };
-    template <> 
-    struct meta_create<unsigned int> 
-    { 
-        typedef spirit::uint__type type; 
+    template <>
+    struct meta_create<unsigned int>
+    {
+        typedef spirit::uint__type type;
         static type const& call() { return spirit::uint_; }
     };
 #if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
-    template <> 
-    struct meta_create<unsigned short> 
-    { 
-        typedef spirit::ushort__type type; 
+    template <>
+    struct meta_create<unsigned short>
+    {
+        typedef spirit::ushort__type type;
         static type const& call() { return spirit::ushort_; }
     };
 #endif
-    template <> 
-    struct meta_create<unsigned long> 
-    { 
-        typedef spirit::ulong__type type; 
+    template <>
+    struct meta_create<unsigned long>
+    {
+        typedef spirit::ulong__type type;
         static type const& call() { return spirit::ulong_; }
     };
 
 #ifdef BOOST_HAS_LONG_LONG
-    template <> 
-    struct meta_create<boost::long_long_type> 
-    { 
-        typedef spirit::long_long_type type; 
+    template <>
+    struct meta_create<boost::long_long_type>
+    {
+        typedef spirit::long_long_type type;
         static type const& call() { return spirit::long_long; }
     };
-    template <> 
-    struct meta_create<boost::ulong_long_type> 
-    { 
-        typedef spirit::ulong_long_type type; 
+    template <>
+    struct meta_create<boost::ulong_long_type>
+    {
+        typedef spirit::ulong_long_type type;
         static type const& call() { return spirit::ulong_long; }
     };
 #endif
 
     // floating point generators
-    template <> 
-    struct meta_create<float> 
-    { 
-        typedef spirit::float__type type; 
+    template <>
+    struct meta_create<float>
+    {
+        typedef spirit::float__type type;
         static type const& call() { return spirit::float_; }
     };
-    template <> 
-    struct meta_create<double> 
-    { 
-        typedef spirit::double__type type; 
+    template <>
+    struct meta_create<double>
+    {
+        typedef spirit::double__type type;
         static type const& call() { return spirit::double_; }
     };
-    template <> 
-    struct meta_create<long double> 
-    { 
-        typedef spirit::long_double_type type; 
+    template <>
+    struct meta_create<long double>
+    {
+        typedef spirit::long_double_type type;
         static type const& call() { return spirit::long_double; }
     };
 }}}
@@ -240,14 +240,14 @@
     ///////////////////////////////////////////////////////////////////////////
     // dispatch this to the qi related specializations
     template <typename T>
-    struct meta_create<qi::domain, T> 
+    struct meta_create<qi::domain, T>
       : create_parser<typename spirit::detail::remove_const_ref<T>::type> {};
 
     ///////////////////////////////////////////////////////////////////////////
-    // Check whether a valid mapping exits for the given data type to a Karma 
-    // component 
+    // Check whether a valid mapping exits for the given data type to a Karma
+    // component
     template <typename T>
-    struct meta_create_exists<qi::domain, T> 
+    struct meta_create_exists<qi::domain, T>
       : mpl::not_<is_same<
             qi::no_auto_mapping_exists
           , typename meta_create<qi::domain, T>::type
Modified: trunk/boost/spirit/home/qi/char/char.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/char/char.hpp	(original)
+++ trunk/boost/spirit/home/qi/char/char.hpp	2010-03-05 01:59:03 EST (Fri, 05 Mar 2010)
@@ -122,7 +122,7 @@
         template <typename CharParam, typename Context>
         bool test(CharParam ch_, Context&) const
         {
-            return traits::ischar<CharParam, char_encoding>::call(ch_) && 
+            return traits::ischar<CharParam, char_encoding>::call(ch_) &&
                    ch == char_type(ch_);
         }
 
@@ -296,7 +296,7 @@
         template <typename CharParam, typename Context>
         bool test(CharParam ch, Context&) const
         {
-            return traits::ischar<CharParam, char_encoding>::call(ch) && 
+            return traits::ischar<CharParam, char_encoding>::call(ch) &&
                    chset.test(char_type(ch));
         }
 
@@ -358,7 +358,7 @@
         template <typename CharParam, typename Context>
         bool test(CharParam ch, Context&) const
         {
-            return traits::ischar<CharParam, char_encoding>::call(ch) && 
+            return traits::ischar<CharParam, char_encoding>::call(ch) &&
                    chset.test(char_type(ch));
         }
 
@@ -414,19 +414,19 @@
 
     template <typename Modifiers>
     struct make_primitive<char, Modifiers>
-      : detail::basic_literal<Modifiers, char_encoding::standard> {};
+      : detail::basic_literal<Modifiers, char_encoding::default_> {};
 
     template <typename Modifiers>
     struct make_primitive<char const(&)[2], Modifiers>
-      : detail::basic_literal<Modifiers, char_encoding::standard> {};
+      : detail::basic_literal<Modifiers, char_encoding::default_> {};
 
     template <typename Modifiers>
     struct make_primitive<wchar_t, Modifiers>
-      : detail::basic_literal<Modifiers, char_encoding::standard_wide> {};
+      : detail::basic_literal<Modifiers, char_encoding::default_wide> {};
 
     template <typename Modifiers>
     struct make_primitive<wchar_t const(&)[2], Modifiers>
-      : detail::basic_literal<Modifiers, char_encoding::standard_wide> {};
+      : detail::basic_literal<Modifiers, char_encoding::default_wide> {};
 
     template <typename CharEncoding, typename Modifiers>
     struct make_primitive<
Modified: trunk/boost/spirit/home/qi/string/symbols.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/string/symbols.hpp	(original)
+++ trunk/boost/spirit/home/qi/string/symbols.hpp	2010-03-05 01:59:03 EST (Fri, 05 Mar 2010)
@@ -179,7 +179,7 @@
         {
             lookup->for_each(f);
         }
-        
+
         template <typename Str>
         value_type& at(Str const& str)
         {
@@ -363,7 +363,7 @@
         typedef no_case_filter<
             typename spirit::detail::get_encoding<
                 Modifiers
-              , char_encoding::standard
+              , char_encoding::default_
               , no_case::value>::type>
         nc_filter;
 
Added: trunk/boost/spirit/home/support/char_encoding/default_wide.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/spirit/home/support/char_encoding/default_wide.hpp	2010-03-05 01:59:03 EST (Fri, 05 Mar 2010)
@@ -0,0 +1,28 @@
+/*=============================================================================
+    Copyright (c) 2001-2010 Hartmut Kaiser
+    Copyright (c) 2001-2010 Joel de Guzman
+
+    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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_DEFAULT_WIDE_MARCH_05_2010_1041AM)
+#define BOOST_SPIRIT_DEFAULT_WIDE_MARCH_05_2010_1041AM
+
+#if defined(_MSC_VER)
+#pragma once
+#endif
+
+#include <boost/spirit/home/support/char_encoding/standard_wide.hpp>
+
+namespace boost { namespace spirit { namespace char_encoding
+{
+    ///////////////////////////////////////////////////////////////////////////
+    //  default_ uses char_encoding::standard
+    ///////////////////////////////////////////////////////////////////////////
+    struct default_wide : char_encoding::standard_wide
+    {
+    };
+}}}
+
+#endif
+
Modified: trunk/boost/spirit/home/support/common_terminals.hpp
==============================================================================
--- trunk/boost/spirit/home/support/common_terminals.hpp	(original)
+++ trunk/boost/spirit/home/support/common_terminals.hpp	2010-03-05 01:59:03 EST (Fri, 05 Mar 2010)
@@ -14,6 +14,7 @@
 
 #include <boost/spirit/home/support/terminal.hpp>
 #include <boost/spirit/home/support/char_encoding/default.hpp>
+#include <boost/spirit/home/support/char_encoding/default_wide.hpp>
 #include <boost/spirit/home/support/char_encoding/standard.hpp>
 #include <boost/spirit/home/support/char_encoding/standard_wide.hpp>
 #include <boost/spirit/home/support/char_encoding/ascii.hpp>
@@ -161,6 +162,7 @@
     /***/
 
 BOOST_SPIRIT_DEFINE_CHAR_CODES(default_)
+BOOST_SPIRIT_DEFINE_CHAR_CODES(default_wide)
 BOOST_SPIRIT_DEFINE_CHAR_CODES(ascii)
 BOOST_SPIRIT_DEFINE_CHAR_CODES(iso8859_1)
 BOOST_SPIRIT_DEFINE_CHAR_CODES(standard)