$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: eric_at_[hidden]
Date: 2008-08-11 00:36:17
Author: eric_niebler
Date: 2008-08-11 00:36:14 EDT (Mon, 11 Aug 2008)
New Revision: 48076
URL: http://svn.boost.org/trac/boost/changeset/48076
Log:
merged from trunk
Properties modified: 
   branches/proto/v4/   (props changed)
Text files modified: 
   branches/proto/v4/boost/xpressive/detail/dynamic/parser_enum.hpp   |     4 ++++                                    
   branches/proto/v4/boost/xpressive/detail/dynamic/parser_traits.hpp |    21 ++++++++++++++++++---                   
   2 files changed, 22 insertions(+), 3 deletions(-)
Modified: branches/proto/v4/boost/xpressive/detail/dynamic/parser_enum.hpp
==============================================================================
--- branches/proto/v4/boost/xpressive/detail/dynamic/parser_enum.hpp	(original)
+++ branches/proto/v4/boost/xpressive/detail/dynamic/parser_enum.hpp	2008-08-11 00:36:14 EDT (Mon, 11 Aug 2008)
@@ -35,6 +35,10 @@
     token_charset_backspace,            // \b
     token_posix_charset_begin,          // [:
     token_posix_charset_end,            // :]
+    token_equivalence_class_begin,      // [=
+    token_equivalence_class_end,        // =]
+    token_collation_element_begin,      // [.
+    token_collation_element_end,        // .]
 
     token_quote_meta_begin,             // \Q
     token_quote_meta_end,               // \E
Modified: branches/proto/v4/boost/xpressive/detail/dynamic/parser_traits.hpp
==============================================================================
--- branches/proto/v4/boost/xpressive/detail/dynamic/parser_traits.hpp	(original)
+++ branches/proto/v4/boost/xpressive/detail/dynamic/parser_traits.hpp	2008-08-11 00:36:14 EDT (Mon, 11 Aug 2008)
@@ -299,10 +299,25 @@
         case BOOST_XPR_CHAR_(char_type, '['):
             {
                 FwdIter next = begin; ++next;
-                if(next != end && *next == BOOST_XPR_CHAR_(char_type, ':'))
+                if(next != end)
                 {
-                    begin = ++next;
-                    return token_posix_charset_begin;
+                    detail::ensure(
+                        *next != BOOST_XPR_CHAR_(char_type, '=')
+                      , error_collate
+                      , "equivalence classes are not yet supported"
+                    );
+
+                    detail::ensure(
+                        *next != BOOST_XPR_CHAR_(char_type, '.')
+                      , error_collate
+                      , "collation sequences are not yet supported"
+                    );
+
+                    if(*next == BOOST_XPR_CHAR_(char_type, ':'))
+                    {
+                        begin = ++next;
+                        return token_posix_charset_begin;
+                    }
                 }
             }
             break;