$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r66073 - in branches/release: . boost boost/algorithm/string boost/archive boost/bimap boost/config boost/detail boost/filesystem boost/functional/hash boost/fusion boost/gil boost/graph boost/integer boost/interprocess boost/intrusive boost/io boost/iostreams boost/math boost/msm boost/numeric/ublas boost/program_options boost/property_tree boost/range boost/regex boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/classic boost/spirit/home/classic/attribute boost/spirit/home/classic/dynamic/impl boost/spirit/home/classic/utility boost/spirit/home/karma boost/spirit/home/karma/auto boost/spirit/home/karma/nonterminal boost/spirit/home/karma/operator boost/spirit/home/karma/stream boost/spirit/home/karma/stream/detail boost/spirit/home/lex boost/spirit/home/qi/auto boost/spirit/home/qi/directive boost/spirit/home/qi/nonterminal boost/spirit/home/support boost/spirit/home/support/detail boost/spirit/include boost/statechart boost/system boost/thread boost/tr1 boost/type_traits boost/unordered boost/utility boost/uuid boost/variant boost/wave doc libs libs/algorithm/string libs/array/doc libs/array/test libs/bimap libs/config libs/filesystem libs/functional/hash libs/fusion libs/graph_parallel libs/integer libs/interprocess libs/intrusive libs/math libs/math/doc/sf_and_dist libs/mpi/build libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/msm libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/range libs/regex libs/serialization libs/serialization/doc libs/serialization/test libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/classic/test libs/spirit/doc libs/spirit/example libs/spirit/example/qi libs/spirit/example/qi/mini_c libs/spirit/optimization libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/statechart libs/static_assert libs/system libs/thread libs/timer libs/tr1 libs/type_traits libs/type_traits/doc libs/unordered libs/utility libs/utility/swap/test libs/uuid libs/wave more more/getting_started status tools tools/bcp tools/boostbook tools/build/v2 tools/inspect tools/quickbook tools/regression tools/regression/src tools/release tools/wave
From: hartmut.kaiser_at_[hidden]
Date: 2010-10-18 08:14:39
Author: hkaiser
Date: 2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
New Revision: 66073
URL: http://svn.boost.org/trac/boost/changeset/66073
Log:
Spirit: merging from trunk
Added:
   branches/release/boost/spirit/include/support_container.hpp
      - copied unchanged from r64418, /trunk/boost/spirit/include/support_container.hpp
   branches/release/libs/spirit/example/qi/custom_string.cpp
      - copied unchanged from r65057, /trunk/libs/spirit/example/qi/custom_string.cpp
   branches/release/libs/spirit/test/qi/debug_optional.cpp
      - copied unchanged from r64973, /trunk/libs/spirit/test/qi/debug_optional.cpp
Properties modified: 
   branches/release/   (props changed)
   branches/release/INSTALL   (props changed)
   branches/release/Jamroot   (props changed)
   branches/release/LICENSE_1_0.txt   (props changed)
   branches/release/boost/   (props changed)
   branches/release/boost-build.jam   (props changed)
   branches/release/boost.css   (props changed)
   branches/release/boost.png   (props changed)
   branches/release/boost/algorithm/string/   (props changed)
   branches/release/boost/archive/   (props changed)
   branches/release/boost/archive/basic_archive.hpp   (props changed)
   branches/release/boost/array.hpp   (props changed)
   branches/release/boost/bimap/   (props changed)
   branches/release/boost/config/   (props changed)
   branches/release/boost/config.hpp   (props changed)
   branches/release/boost/detail/   (props changed)
   branches/release/boost/detail/endian.hpp   (props changed)
   branches/release/boost/filesystem/   (props changed)
   branches/release/boost/filesystem.hpp   (props changed)
   branches/release/boost/functional/hash/   (props changed)
   branches/release/boost/fusion/   (props changed)
   branches/release/boost/gil/   (props changed)
   branches/release/boost/graph/   (props changed)
   branches/release/boost/integer/   (props changed)
   branches/release/boost/interprocess/   (props changed)
   branches/release/boost/intrusive/   (props changed)
   branches/release/boost/io/   (props changed)
   branches/release/boost/iostreams/   (props changed)
   branches/release/boost/math/   (props changed)
   branches/release/boost/math_fwd.hpp   (props changed)
   branches/release/boost/msm/   (props changed)
   branches/release/boost/numeric/ublas/   (props changed)
   branches/release/boost/numeric/ublas/functional.hpp   (props changed)
   branches/release/boost/program_options/   (props changed)
   branches/release/boost/property_tree/   (props changed)
   branches/release/boost/range/   (props changed)
   branches/release/boost/regex/   (props changed)
   branches/release/boost/serialization/   (props changed)
   branches/release/boost/signals/   (props changed)
   branches/release/boost/signals2/   (props changed)
   branches/release/boost/signals2.hpp   (props changed)
   branches/release/boost/spirit/   (props changed)
   branches/release/boost/spirit/home/   (props changed)
   branches/release/boost/spirit/home/karma/   (props changed)
   branches/release/boost/spirit/home/support/attributes.hpp   (contents, props changed)
   branches/release/boost/statechart/   (props changed)
   branches/release/boost/system/   (props changed)
   branches/release/boost/thread/   (props changed)
   branches/release/boost/thread.hpp   (props changed)
   branches/release/boost/tr1/   (props changed)
   branches/release/boost/type_traits/   (props changed)
   branches/release/boost/unordered/   (props changed)
   branches/release/boost/utility/   (props changed)
   branches/release/boost/utility/value_init.hpp   (props changed)
   branches/release/boost/uuid/   (props changed)
   branches/release/boost/variant/   (props changed)
   branches/release/boost/version.hpp   (props changed)
   branches/release/boost/wave/   (props changed)
   branches/release/bootstrap.bat   (props changed)
   branches/release/bootstrap.sh   (props changed)
   branches/release/doc/   (props changed)
   branches/release/index.htm   (props changed)
   branches/release/index.html   (props changed)
   branches/release/libs/   (props changed)
   branches/release/libs/algorithm/string/   (props changed)
   branches/release/libs/array/doc/array.xml   (props changed)
   branches/release/libs/array/test/array0.cpp   (props changed)
   branches/release/libs/array/test/array2.cpp   (props changed)
   branches/release/libs/bimap/   (props changed)
   branches/release/libs/config/   (props changed)
   branches/release/libs/filesystem/   (props changed)
   branches/release/libs/functional/hash/   (props changed)
   branches/release/libs/fusion/   (props changed)
   branches/release/libs/graph_parallel/   (props changed)
   branches/release/libs/integer/   (props changed)
   branches/release/libs/interprocess/   (props changed)
   branches/release/libs/intrusive/   (props changed)
   branches/release/libs/libraries.htm   (props changed)
   branches/release/libs/maintainers.txt   (props changed)
   branches/release/libs/math/   (props changed)
   branches/release/libs/math/doc/sf_and_dist/   (props changed)
   branches/release/libs/mpi/build/   (props changed)
   branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-concepts.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/inserter-class.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html   (props changed)
   branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst   (props changed)
   branches/release/libs/msm/   (props changed)
   branches/release/libs/numeric/ublas/   (props changed)
   branches/release/libs/numeric/ublas/doc/   (props changed)
   branches/release/libs/program_options/   (props changed)
   branches/release/libs/property_tree/   (props changed)
   branches/release/libs/range/   (props changed)
   branches/release/libs/regex/   (props changed)
   branches/release/libs/serialization/   (props changed)
   branches/release/libs/serialization/doc/   (props changed)
   branches/release/libs/serialization/test/   (props changed)
   branches/release/libs/serialization/test/A.cpp   (props changed)
   branches/release/libs/serialization/test/A.hpp   (props changed)
   branches/release/libs/serialization/test/A.ipp   (props changed)
   branches/release/libs/serialization/test/B.hpp   (props changed)
   branches/release/libs/serialization/test/C.hpp   (props changed)
   branches/release/libs/serialization/test/D.hpp   (props changed)
   branches/release/libs/serialization/test/J.hpp   (props changed)
   branches/release/libs/serialization/test/Jamfile.v2   (props changed)
   branches/release/libs/serialization/test/base.hpp   (props changed)
   branches/release/libs/serialization/test/binary_archive.hpp   (props changed)
   branches/release/libs/serialization/test/binary_warchive.hpp   (props changed)
   branches/release/libs/serialization/test/derived2.hpp   (props changed)
   branches/release/libs/serialization/test/dll_a.cpp   (props changed)
   branches/release/libs/serialization/test/dll_base.cpp   (props changed)
   branches/release/libs/serialization/test/dll_derived2.cpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_array_binary_archive.hpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_base.cpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_base.hpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_binary_archive.hpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_derived1.cpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_derived1.hpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_derived2.cpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_derived2.hpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_text_archive.hpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_text_warchive.hpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_xml_archive.hpp   (props changed)
   branches/release/libs/serialization/test/polymorphic_xml_warchive.hpp   (props changed)
   branches/release/libs/serialization/test/portable_binary_archive.hpp   (props changed)
   branches/release/libs/serialization/test/test_array.cpp   (props changed)
   branches/release/libs/serialization/test/test_binary.cpp   (props changed)
   branches/release/libs/serialization/test/test_bitset.cpp   (props changed)
   branches/release/libs/serialization/test/test_check.cpp   (props changed)
   branches/release/libs/serialization/test/test_class_info_load.cpp   (props changed)
   branches/release/libs/serialization/test/test_class_info_save.cpp   (props changed)
   branches/release/libs/serialization/test/test_codecvt_null.cpp   (props changed)
   branches/release/libs/serialization/test/test_complex.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_load_fail1.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_load_fail1_nvp.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_load_fail2.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_load_fail2_nvp.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_load_fail3.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_load_fail3_nvp.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_pass.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_save_warn1.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_save_warn1_nvp.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_save_warn2.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_save_warn2_nvp.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_save_warn3.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_save_warn3_nvp.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_save_warn4.cpp   (props changed)
   branches/release/libs/serialization/test/test_const_save_warn4_nvp.cpp   (props changed)
   branches/release/libs/serialization/test/test_contained_class.cpp   (props changed)
   branches/release/libs/serialization/test/test_cyclic_ptrs.cpp   (props changed)
   branches/release/libs/serialization/test/test_decl.hpp   (props changed)
   branches/release/libs/serialization/test/test_delete_pointer.cpp   (props changed)
   branches/release/libs/serialization/test/test_deque.cpp   (props changed)
   branches/release/libs/serialization/test/test_derived.cpp   (props changed)
   branches/release/libs/serialization/test/test_derived_class.cpp   (props changed)
   branches/release/libs/serialization/test/test_derived_class_ptr.cpp   (props changed)
   branches/release/libs/serialization/test/test_diamond.cpp   (props changed)
   branches/release/libs/serialization/test/test_diamond_complex.cpp   (props changed)
   branches/release/libs/serialization/test/test_dll_exported.cpp   (props changed)
   branches/release/libs/serialization/test/test_dll_plugin.cpp   (props changed)
   branches/release/libs/serialization/test/test_dll_simple.cpp   (props changed)
   branches/release/libs/serialization/test/test_exported.cpp   (props changed)
   branches/release/libs/serialization/test/test_inclusion.cpp   (props changed)
   branches/release/libs/serialization/test/test_iterators.cpp   (props changed)
   branches/release/libs/serialization/test/test_iterators_base64.cpp   (props changed)
   branches/release/libs/serialization/test/test_list.cpp   (props changed)
   branches/release/libs/serialization/test/test_list_ptrs.cpp   (props changed)
   branches/release/libs/serialization/test/test_map.cpp   (props changed)
   branches/release/libs/serialization/test/test_mi.cpp   (props changed)
   branches/release/libs/serialization/test/test_mult_archive_types.cpp   (props changed)
   branches/release/libs/serialization/test/test_multiple_inheritance.cpp   (props changed)
   branches/release/libs/serialization/test/test_multiple_ptrs.cpp   (props changed)
   branches/release/libs/serialization/test/test_new_operator.cpp   (props changed)
   branches/release/libs/serialization/test/test_no_rtti.cpp   (props changed)
   branches/release/libs/serialization/test/test_non_default_ctor.cpp   (props changed)
   branches/release/libs/serialization/test/test_non_default_ctor2.cpp   (props changed)
   branches/release/libs/serialization/test/test_non_intrusive.cpp   (props changed)
   branches/release/libs/serialization/test/test_not_serializable.cpp   (props changed)
   branches/release/libs/serialization/test/test_null_ptr.cpp   (props changed)
   branches/release/libs/serialization/test/test_nvp.cpp   (props changed)
   branches/release/libs/serialization/test/test_object.cpp   (props changed)
   branches/release/libs/serialization/test/test_optional.cpp   (props changed)
   branches/release/libs/serialization/test/test_pimpl.cpp   (props changed)
   branches/release/libs/serialization/test/test_polymorphic.cpp   (props changed)
   branches/release/libs/serialization/test/test_polymorphic2.cpp   (props changed)
   branches/release/libs/serialization/test/test_polymorphic2.hpp   (props changed)
   branches/release/libs/serialization/test/test_polymorphic2imp.cpp   (props changed)
   branches/release/libs/serialization/test/test_polymorphic_A.cpp   (props changed)
   branches/release/libs/serialization/test/test_polymorphic_A.hpp   (props changed)
   branches/release/libs/serialization/test/test_primitive.cpp   (props changed)
   branches/release/libs/serialization/test/test_private_base.cpp   (props changed)
   branches/release/libs/serialization/test/test_private_ctor.cpp   (props changed)
   branches/release/libs/serialization/test/test_recursion.cpp   (props changed)
   branches/release/libs/serialization/test/test_registered.cpp   (props changed)
   branches/release/libs/serialization/test/test_reset_object_address.cpp   (props changed)
   branches/release/libs/serialization/test/test_set.cpp   (props changed)
   branches/release/libs/serialization/test/test_shared_ptr.cpp   (props changed)
   branches/release/libs/serialization/test/test_shared_ptr_132.cpp   (props changed)
   branches/release/libs/serialization/test/test_shared_ptr_multi_base.cpp   (props changed)
   branches/release/libs/serialization/test/test_simple_class.cpp   (props changed)
   branches/release/libs/serialization/test/test_simple_class_ptr.cpp   (props changed)
   branches/release/libs/serialization/test/test_singleton.cpp   (props changed)
   branches/release/libs/serialization/test/test_smart_cast.cpp   (props changed)
   branches/release/libs/serialization/test/test_split.cpp   (props changed)
   branches/release/libs/serialization/test/test_static_warning.cpp   (props changed)
   branches/release/libs/serialization/test/test_tools.hpp   (props changed)
   branches/release/libs/serialization/test/test_tracking.cpp   (props changed)
   branches/release/libs/serialization/test/test_traits_fail.cpp   (props changed)
   branches/release/libs/serialization/test/test_traits_pass.cpp   (props changed)
   branches/release/libs/serialization/test/test_unregistered.cpp   (props changed)
   branches/release/libs/serialization/test/test_utf8_codecvt.cpp   (props changed)
   branches/release/libs/serialization/test/test_valarray.cpp   (props changed)
   branches/release/libs/serialization/test/test_variant.cpp   (props changed)
   branches/release/libs/serialization/test/test_vector.cpp   (props changed)
   branches/release/libs/serialization/test/test_void_cast.cpp   (props changed)
   branches/release/libs/serialization/test/text_archive.hpp   (props changed)
   branches/release/libs/serialization/test/text_warchive.hpp   (props changed)
   branches/release/libs/serialization/test/xml_archive.hpp   (props changed)
   branches/release/libs/serialization/test/xml_warchive.hpp   (props changed)
   branches/release/libs/signals/   (props changed)
   branches/release/libs/signals2/   (props changed)
   branches/release/libs/spirit/   (props changed)
   branches/release/libs/spirit/classic/example/   (props changed)
   branches/release/libs/spirit/doc/   (props changed)
   branches/release/libs/spirit/example/   (props changed)
   branches/release/libs/spirit/phoenix/   (props changed)
   branches/release/libs/spirit/test/   (props changed)
   branches/release/libs/spirit/test/qi/optional.cpp   (props changed)
   branches/release/libs/statechart/   (props changed)
   branches/release/libs/static_assert/   (props changed)
   branches/release/libs/system/   (props changed)
   branches/release/libs/thread/   (props changed)
   branches/release/libs/timer/   (props changed)
   branches/release/libs/tr1/   (props changed)
   branches/release/libs/type_traits/   (props changed)
   branches/release/libs/type_traits/doc/   (props changed)
   branches/release/libs/unordered/   (props changed)
   branches/release/libs/utility/   (props changed)
   branches/release/libs/utility/swap.html   (props changed)
   branches/release/libs/utility/swap/test/std_bitset.cpp   (props changed)
   branches/release/libs/utility/value_init.htm   (props changed)
   branches/release/libs/utility/value_init_test.cpp   (props changed)
   branches/release/libs/uuid/   (props changed)
   branches/release/libs/wave/   (props changed)
   branches/release/more/   (props changed)
   branches/release/more/getting_started/   (props changed)
   branches/release/rst.css   (props changed)
   branches/release/status/   (props changed)
   branches/release/status/Jamfile.v2   (props changed)
   branches/release/status/explicit-failures-markup.xml   (props changed)
   branches/release/tools/   (props changed)
   branches/release/tools/bcp/   (props changed)
   branches/release/tools/boostbook/   (props changed)
   branches/release/tools/build/v2/   (props changed)
   branches/release/tools/inspect/   (props changed)
   branches/release/tools/quickbook/   (props changed)
   branches/release/tools/regression/   (props changed)
   branches/release/tools/regression/src/library_status.cpp   (props changed)
   branches/release/tools/release/   (props changed)
   branches/release/tools/wave/   (props changed)
Text files modified: 
   branches/release/boost/spirit/home/classic/attribute.hpp                |     2                                         
   branches/release/boost/spirit/home/classic/attribute/closure.hpp        |    24 +-                                      
   branches/release/boost/spirit/home/classic/dynamic/impl/select.ipp      |     4                                         
   branches/release/boost/spirit/home/classic/dynamic/impl/switch.ipp      |   317 --------------------------------------- 
   branches/release/boost/spirit/home/classic/utility/grammar_def.hpp      |     6                                         
   branches/release/boost/spirit/home/karma/auto/meta_create.hpp           |    13 +                                       
   branches/release/boost/spirit/home/karma/nonterminal/grammar.hpp        |     6                                         
   branches/release/boost/spirit/home/karma/operator/sequence.hpp          |     2                                         
   branches/release/boost/spirit/home/karma/stream/detail/format_manip.hpp |     1                                         
   branches/release/boost/spirit/home/karma/stream/format_manip.hpp        |     1                                         
   branches/release/boost/spirit/home/karma/stream/format_manip_attr.hpp   |     1                                         
   branches/release/boost/spirit/home/lex/argument.hpp                     |     1                                         
   branches/release/boost/spirit/home/qi/auto/meta_create.hpp              |    13 +                                       
   branches/release/boost/spirit/home/qi/directive/omit.hpp                |     1                                         
   branches/release/boost/spirit/home/qi/directive/skip.hpp                |     6                                         
   branches/release/boost/spirit/home/qi/nonterminal/grammar.hpp           |     6                                         
   branches/release/boost/spirit/home/qi/nonterminal/rule.hpp              |    16 +-                                      
   branches/release/boost/spirit/home/support/attributes.hpp               |    15 +                                       
   branches/release/boost/spirit/home/support/detail/hold_any.hpp          |    23 +-                                      
   branches/release/boost/spirit/home/support/string_traits.hpp            |     1                                         
   branches/release/boost/spirit/include/version.hpp                       |     2                                         
   branches/release/libs/spirit/classic/test/symbols_add_null.cpp          |     6                                         
   branches/release/libs/spirit/example/qi/mini_c/mini_cb.hpp              |    24 +-                                      
   branches/release/libs/spirit/example/qi/mini_c/mini_cc.hpp              |    22 +-                                      
   branches/release/libs/spirit/example/qi/mini_c/mini_cd.hpp              |    12                                         
   branches/release/libs/spirit/optimization/high_resolution_timer.hpp     |     6                                         
   branches/release/libs/spirit/test/Jamfile                               |     1                                         
   branches/release/libs/spirit/test/qi/kleene.cpp                         |     1                                         
   branches/release/libs/spirit/test/qi/list.cpp                           |     1                                         
   branches/release/libs/spirit/test/qi/real.cpp                           |     9 +                                       
   30 files changed, 143 insertions(+), 400 deletions(-)
Modified: branches/release/boost/spirit/home/classic/attribute.hpp
==============================================================================
--- branches/release/boost/spirit/home/classic/attribute.hpp	(original)
+++ branches/release/boost/spirit/home/classic/attribute.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -27,7 +27,7 @@
 //
 ///////////////////////////////////////////////////////////////////////////////
 #if !defined(PHOENIX_LIMIT)
-#define PHOENIX_LIMIT 3
+#define PHOENIX_LIMIT 6
 #endif // !defined(PHOENIX_LIMIT)
 
 ///////////////////////////////////////////////////////////////////////////////
Modified: branches/release/boost/spirit/home/classic/attribute/closure.hpp
==============================================================================
--- branches/release/boost/spirit/home/classic/attribute/closure.hpp	(original)
+++ branches/release/boost/spirit/home/classic/attribute/closure.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -81,7 +81,7 @@
 
         template <typename ResultT, typename ParserT, typename ScannerT>
         ResultT& post_parse(ResultT& hit, ParserT const&, ScannerT const&)
-        { hit.value(frame[phoenix::tuple_index<0>()]); return hit; }
+        { hit.value(frame[::phoenix::tuple_index<0>()]); return hit; }
 
     private:
 
@@ -121,7 +121,7 @@
 
         template <typename ResultT, typename ParserT, typename ScannerT>
         ResultT& post_parse(ResultT& hit, ParserT const&, ScannerT const&)
-        { hit.value(frame[phoenix::tuple_index<0>()]); return hit; }
+        { hit.value(frame[::phoenix::tuple_index<0>()]); return hit; }
 
     private:
 
@@ -1046,14 +1046,14 @@
 
     template <typename BaseT>
     inline f_chseq<
-        ::phoenix::actor<container_begin<phoenix::actor<BaseT> > >,
-        ::phoenix::actor<container_end<phoenix::actor<BaseT> > >
+        ::phoenix::actor<container_begin< ::phoenix::actor<BaseT> > >,
+        ::phoenix::actor<container_end< ::phoenix::actor<BaseT> > >
     >
-    f_chseq_p(phoenix::actor<BaseT> const& a)
+    f_chseq_p(::phoenix::actor<BaseT> const& a)
     {
-        typedef ::phoenix::actor<container_begin<phoenix::actor<BaseT> > >
+        typedef ::phoenix::actor<container_begin< ::phoenix::actor<BaseT> > >
             container_begin_t;
-        typedef ::phoenix::actor<container_end<phoenix::actor<BaseT> > >
+        typedef ::phoenix::actor<container_end< ::phoenix::actor<BaseT> > >
             container_end_t;
         typedef f_chseq<container_begin_t, container_end_t> result_t;
 
@@ -1062,14 +1062,14 @@
 
     template <typename BaseT>
     inline f_strlit<
-        ::phoenix::actor<container_begin<phoenix::actor<BaseT> > >,
-        ::phoenix::actor<container_end<phoenix::actor<BaseT> > >
+        ::phoenix::actor<container_begin< ::phoenix::actor<BaseT> > >,
+        ::phoenix::actor<container_end< ::phoenix::actor<BaseT> > >
     >
-    f_str_p(phoenix::actor<BaseT> const& a)
+    f_str_p(::phoenix::actor<BaseT> const& a)
     {
-        typedef ::phoenix::actor<container_begin<phoenix::actor<BaseT> > >
+        typedef ::phoenix::actor<container_begin< ::phoenix::actor<BaseT> > >
             container_begin_t;
-        typedef ::phoenix::actor<container_end<phoenix::actor<BaseT> > >
+        typedef ::phoenix::actor<container_end< ::phoenix::actor<BaseT> > >
             container_end_t;
         typedef f_strlit<container_begin_t, container_end_t> result_t;
 
Modified: branches/release/boost/spirit/home/classic/dynamic/impl/select.ipp
==============================================================================
--- branches/release/boost/spirit/home/classic/dynamic/impl/select.ipp	(original)
+++ branches/release/boost/spirit/home/classic/dynamic/impl/select.ipp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -73,7 +73,7 @@
         typedef typename parser_result<parser_t, ScannerT>::type    result_t;
     
     iterator_t save(scan.first);
-    result_t result(t[phoenix::tuple_index<index>()].parse(scan));
+    result_t result(t[::phoenix::tuple_index<index>()].parse(scan));
 
         if (result) {
             return scan.create_match(result.length(), TupleT::length - N, 
@@ -99,7 +99,7 @@
         typedef typename parser_result<parser_t, ScannerT>::type    result_t;
         
     iterator_t save(scan.first);
-    result_t result(t[phoenix::tuple_index<index>()].parse(scan));
+    result_t result(t[::phoenix::tuple_index<index>()].parse(scan));
 
         if (result) {
             return scan.create_match(result.length(), TupleT::length - 1, 
Modified: branches/release/boost/spirit/home/classic/dynamic/impl/switch.ipp
==============================================================================
--- branches/release/boost/spirit/home/classic/dynamic/impl/switch.ipp	(original)
+++ branches/release/boost/spirit/home/classic/dynamic/impl/switch.ipp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -103,314 +103,7 @@
     template <
         typename ParserT, typename DefaultT,
         typename ValueT, typename ScannerT
-    >
-    static typename parser_result<ParserT, ScannerT>::type
-    parse (ValueT const &value, ParserT const &p, DefaultT const &d,
-        ScannerT const &scan, typename ScannerT::iterator_t const save)
-    {
-        //  Since there is a default_p case branch defined, the corresponding
-        //  parser shouldn't be the nothing_parser
-        BOOST_STATIC_ASSERT((!boost::is_same<DefaultT, nothing_parser>::value));
-        if (value == N)
-            return delegate_parse(p, scan, save);
-
-        return delegate_parse(d, scan, save);
-    }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//  Look through the case parser chain to test, if there is a default case
-//  branch defined (returned by 'value').
-template <typename CaseT, bool IsSimple = CaseT::is_simple>
-struct default_case;
-
-////////////////////////////////////////
-template <typename ResultT, bool IsDefault>
-struct get_default_parser {
-
-    template <typename ParserT>
-    static ResultT
-    get(parser<ParserT> const &p)
-    {
-        return default_case<typename ParserT::derived_t::left_t>::
-            get(p.derived().left());
-    }
-};
-
-template <typename ResultT>
-struct get_default_parser<ResultT, true> {
-
-    template <typename ParserT>
-    static ResultT
-    get(parser<ParserT> const &p) { return p.derived().right(); }
-};
-
-////////////////////////////////////////
-template <typename CaseT, bool IsSimple>
-struct default_case {
-
-    //  The 'value' constant is true, if the current case_parser or one of its
-    //  left siblings is a default_p generated case_parser.
-    BOOST_STATIC_CONSTANT(bool, value =
-        (CaseT::is_default || default_case<typename CaseT::left_t>::value));
-
-    //  The 'is_epsilon' constant is true, if the current case_parser or one of
-    //  its left siblings is a default_p generated parser with an attached
-    //  epsilon_p (this is generated by the plain default_p).
-    BOOST_STATIC_CONSTANT(bool, is_epsilon = (
-        (CaseT::is_default && CaseT::is_epsilon) ||
-            default_case<typename CaseT::left_t>::is_epsilon
-    ));
-
-    //  The computed 'type' represents the type of the default case branch
-    //  parser (if there is one) or nothing_parser (if there isn't any default
-    //  case branch).
-    typedef typename boost::mpl::if_c<
-            CaseT::is_default, typename CaseT::right_embed_t,
-            typename default_case<typename CaseT::left_t>::type
-        >::type type;
-
-    //  The get function returns the parser attached to the default case branch
-    //  (if there is one) or an instance of a nothing_parser (if there isn't
-    //  any default case branch).
-    template <typename ParserT>
-    static type
-    get(parser<ParserT> const &p)
-    { return get_default_parser<type, CaseT::is_default>::get(p); }
-};
-
-////////////////////////////////////////
-template <typename ResultT, bool IsDefault>
-struct get_default_parser_simple {
-
-    template <typename ParserT>
-    static ResultT
-    get(parser<ParserT> const &p) { return p.derived(); }
-};
-
-template <typename ResultT>
-struct get_default_parser_simple<ResultT, false> {
-
-    template <typename ParserT>
-    static nothing_parser
-    get(parser<ParserT> const &) { return nothing_p; }
-};
-
-////////////////////////////////////////
-//  Specialization of the default_case template for the last (leftmost) element
-//  of the case parser chain.
-template <typename CaseT>
-struct default_case<CaseT, true> {
-
-    //  The 'value' and 'is_epsilon' constant, the 'type' type and the function
-    //  'get' are described above.
-
-    BOOST_STATIC_CONSTANT(bool, value = CaseT::is_default);
-    BOOST_STATIC_CONSTANT(bool, is_epsilon = (
-        CaseT::is_default && CaseT::is_epsilon
-    ));
-
-    typedef typename boost::mpl::if_c<
-            CaseT::is_default, CaseT, nothing_parser
-        >::type type;
-
-    template <typename ParserT>
-    static type
-    get(parser<ParserT> const &p)
-    { return get_default_parser_simple<type, value>::get(p); }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//  The case_chain template calculates recursivly the depth of the left
-//  subchain of the given case branch node.
-template <typename CaseT, bool IsSimple = CaseT::is_simple>
-struct case_chain {
-
-    BOOST_STATIC_CONSTANT(int, depth = (
-        case_chain<typename CaseT::left_t>::depth + 1
-    ));
-};
-
-template <typename CaseT>
-struct case_chain<CaseT, true> {
-
-    BOOST_STATIC_CONSTANT(int, depth = 0);
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//  The chain_parser template is used to extract the type and the instance of
-//  a left or a right parser, burried arbitrary deep inside the case parser
-//  chain.
-template <int Depth, typename CaseT>
-struct chain_parser {
-
-    typedef typename CaseT::left_t our_left_t;
-
-    typedef typename chain_parser<Depth-1, our_left_t>::left_t  left_t;
-    typedef typename chain_parser<Depth-1, our_left_t>::right_t right_t;
-
-    static left_t
-    left(CaseT const &p)
-    { return chain_parser<Depth-1, our_left_t>::left(p.left()); }
-
-    static right_t
-    right(CaseT const &p)
-    { return chain_parser<Depth-1, our_left_t>::right(p.left()); }
-};
-
-template <typename CaseT>
-struct chain_parser<1, CaseT> {
-
-    typedef typename CaseT::left_t  left_t;
-    typedef typename CaseT::right_t right_t;
-
-    static left_t left(CaseT const &p) { return p.left(); }
-    static right_t right(CaseT const &p) { return p.right(); }
-};
-
-template <typename CaseT>
-struct chain_parser<0, CaseT>;      // shouldn't be instantiated
-
-///////////////////////////////////////////////////////////////////////////////
-//  Type computing meta function for calculating the type of the return value
-//  of the used conditional switch expression
-template <typename TargetT, typename ScannerT>
-struct condition_result {
-
-    typedef typename TargetT::template result<ScannerT>::type type;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-template <typename LeftT, typename RightT, bool IsDefault>
-struct compound_case_parser
-:   public binary<LeftT, RightT,
-        parser<compound_case_parser<LeftT, RightT, IsDefault> > >
-{
-    typedef compound_case_parser<LeftT, RightT, IsDefault>    self_t;
-    typedef binary_parser_category                  parser_category_t;
-    typedef binary<LeftT, RightT, parser<self_t> >  base_t;
-
-    BOOST_STATIC_CONSTANT(int, value = RightT::value);
-    BOOST_STATIC_CONSTANT(bool, is_default = IsDefault);
-    BOOST_STATIC_CONSTANT(bool, is_simple = false);
-    BOOST_STATIC_CONSTANT(bool, is_epsilon = (
-        is_default &&
-            boost::is_same<typename RightT::subject_t, epsilon_parser>::value
-    ));
-
-    compound_case_parser(parser<LeftT> const &lhs, parser<RightT> const &rhs)
-    :   base_t(lhs.derived(), rhs.derived())
-    {}
-
-    template <typename ScannerT>
-    struct result
-    {
-        typedef typename match_result<ScannerT, nil_t>::type type;
-    };
-
-    template <typename ScannerT, typename CondT>
-    typename parser_result<self_t, ScannerT>::type
-    parse(ScannerT const& scan, CondT const &cond) const;
-
-    template <int N1, typename ParserT1, bool IsDefault1>
-    compound_case_parser<
-        self_t, case_parser<N1, ParserT1, IsDefault1>, IsDefault1
-    >
-    operator, (case_parser<N1, ParserT1, IsDefault1> const &p) const
-    {
-        //  If the following compile time assertion fires, you've probably used
-        //  more than one default_p case inside the switch_p parser construct.
-        BOOST_STATIC_ASSERT(!default_case<self_t>::value || !IsDefault1);
-
-        //  If this compile time assertion fires, you've probably want to use
-        //  more case_p/default_p case branches, than possible.
-        BOOST_STATIC_ASSERT(
-            case_chain<self_t>::depth < BOOST_SPIRIT_SWITCH_CASE_LIMIT
-        );
-
-        typedef case_parser<N1, ParserT1, IsDefault1> right_t;
-        return compound_case_parser<self_t, right_t, IsDefault1>(*this, p);
-    }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//  The parse_switch::do_ functions dispatch to the correct parser, which is
-//  selected through the given conditional switch value.
-template <int Value, int Depth, bool IsDefault>
-struct parse_switch;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-//  The following generates a couple of parse_switch template specializations
-//  with an increasing number of handled case branches (for 1..N).
-//
-//      template <int Value, bool IsDefault>
-//      struct parse_switch<Value, N, IsDefault> {
-//
-//          template <typename ParserT, typename ScannerT>
-//          static typename parser_result<ParserT, ScannerT>::type
-//          do_(ParserT const &p, ScannerT const &scan, long cond_value,
-//              typename ScannerT::iterator_t const &save)
-//          {
-//              typedef ParserT left_t0;
-//              typedef typename left_t0::left left_t1;
-//              ...
-//
-//              switch (cond_value) {
-//              case left_tN::value:
-//                  return delegate_parse(chain_parser<
-//                          case_chain<ParserT>::depth, ParserT
-//                      >::left(p), scan, save);
-//              ...
-//              case left_t1::value:
-//                  return delegate_parse(chain_parser<
-//                          1, left_t1
-//                      >::right(p.left()), scan, save);
-//
-//              case left_t0::value:
-//              default:
-//                  typedef default_case<ParserT> default_t;
-//                  typedef default_delegate_parse<
-//                              Value, IsDefault, default_t::value>
-//                      default_parse_t;
-//
-//                  return default_parse_t::parse(cond_value, p.right(),
-//                      default_t::get(p), scan, save);
-//              }
-//          }
-//      };
-//
-///////////////////////////////////////////////////////////////////////////////
-#define BOOST_SPIRIT_PARSE_SWITCH_TYPEDEFS(z, N, _)                         \
-    typedef typename BOOST_PP_CAT(left_t, N)::left_t                        \
-        BOOST_PP_CAT(left_t, BOOST_PP_INC(N));                              \
-    /**/
-
-#define BOOST_SPIRIT_PARSE_SWITCH_CASES(z, N, _)                            \
-    case (long)(BOOST_PP_CAT(left_t, N)::value):                            \
-        return delegate_parse(chain_parser<N, left_t1>::right(p.left()),    \
-            scan, save);                                                    \
-    /**/
-
-#define BOOST_SPIRIT_PARSE_SWITCHES(z, N, _)                                \
-    template <int Value, bool IsDefault>                                    \
-    struct parse_switch<Value, BOOST_PP_INC(N), IsDefault> {                \
-                                                                            \
-        template <typename ParserT, typename ScannerT>                      \
-        static typename parser_result<ParserT, ScannerT>::type              \
-        do_(ParserT const &p, ScannerT const &scan, long cond_value,        \
-            typename ScannerT::iterator_t const &save)                      \
-        {                                                                   \
-            typedef ParserT left_t0;                                        \
-            BOOST_PP_REPEAT_FROM_TO_ ## z(0, BOOST_PP_INC(N),               \
-                BOOST_SPIRIT_PARSE_SWITCH_TYPEDEFS, _)                      \
-                                                                            \
-            switch (cond_value) {                                           \
-            case (long)(BOOST_PP_CAT(left_t, BOOST_PP_INC(N))::value):      \
-                return delegate_parse(                                      \
-                    chain_parser<                                           \
-                        case_chain<ParserT>::depth, ParserT                 \
-                    >::left(p), scan, save);                                \
+               >::left(p), scan, save);                                \
                                                                             \
             BOOST_PP_REPEAT_FROM_TO_ ## z(1, BOOST_PP_INC(N),               \
                 BOOST_SPIRIT_PARSE_SWITCH_CASES, _)                         \
@@ -523,12 +216,12 @@
 };
 
 template <typename ActorT>
-struct make_cond_functor<phoenix::actor<ActorT> > {
+struct make_cond_functor< ::phoenix::actor<ActorT> > {
 
-    static cond_actor<phoenix::actor<ActorT> >
-    do_(phoenix::actor<ActorT> const &actor)
+    static cond_actor< ::phoenix::actor<ActorT> >
+    do_(::phoenix::actor<ActorT> const &actor)
     {
-        return cond_actor<phoenix::actor<ActorT> >(actor);
+        return cond_actor< ::phoenix::actor<ActorT> >(actor);
     }
 };
 
Modified: branches/release/boost/spirit/home/classic/utility/grammar_def.hpp
==============================================================================
--- branches/release/boost/spirit/home/classic/utility/grammar_def.hpp	(original)
+++ branches/release/boost/spirit/home/classic/utility/grammar_def.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -97,7 +97,7 @@
     struct assign_zero_to_tuple_member {
 
         template <typename TupleT>
-        static void do_(TupleT &t) { t[phoenix::tuple_index<N>()] = 0; }
+        static void do_(TupleT &t) { t[::phoenix::tuple_index<N>()] = 0; }
     };
 
     template <int N>
@@ -289,9 +289,9 @@
     //  Another reason may be, that there is a count mismatch between
     //  the number of template parameters to the grammar_def<> class and the
     //  number of parameters used while calling start_parsers().
-        BOOST_SPIRIT_ASSERT(0 != t[phoenix::tuple_index<N>()]);
+        BOOST_SPIRIT_ASSERT(0 != t[::phoenix::tuple_index<N>()]);
 
-        return t[phoenix::tuple_index<N>()];
+        return t[::phoenix::tuple_index<N>()];
     }
 
 private:
Modified: branches/release/boost/spirit/home/karma/auto/meta_create.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/auto/meta_create.hpp	(original)
+++ branches/release/boost/spirit/home/karma/auto/meta_create.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -207,12 +207,25 @@
         static type const& call() { return spirit::standard::char_; }
     };
     template <> 
+    struct meta_create<signed 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<unsigned char> 
+    { 
+        typedef spirit::standard::char_type type;
+        static type const& call() { return spirit::standard::char_; }
+    };
+
     // boolean generator
     template <> 
     struct meta_create<bool> 
Modified: branches/release/boost/spirit/home/karma/nonterminal/grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/nonterminal/grammar.hpp	(original)
+++ branches/release/boost/spirit/home/karma/nonterminal/grammar.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -52,6 +52,12 @@
 
         static size_t const params_size = start_type::params_size;
 
+        template <typename Context, typename Unused>
+        struct attribute
+        {
+            typedef typename start_type::attr_type type;
+        };
+
         // the output iterator is always wrapped by karma
         typedef detail::output_iterator<OutputIterator, properties> 
             output_iterator;
Modified: branches/release/boost/spirit/home/karma/operator/sequence.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/sequence.hpp	(original)
+++ branches/release/boost/spirit/home/karma/operator/sequence.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -252,7 +252,7 @@
                 // is not optimal but much better than letting _all_ repetitive
                 // components fail.
                 Pred1::value ||
-                detail::attribute_size<attr_type_>::value == detail::attr_size(attr_));
+                std::size_t(detail::attribute_size<attr_type_>::value) == detail::attr_size(attr_));
         }
 
         // Special case when Attribute is an stl container and the sequence's
Modified: branches/release/boost/spirit/home/karma/stream/detail/format_manip.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/stream/detail/format_manip.hpp	(original)
+++ branches/release/boost/spirit/home/karma/stream/detail/format_manip.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -202,7 +202,6 @@
         }
         return os;
     }
-
 }}}}
 
 #endif
Modified: branches/release/boost/spirit/home/karma/stream/format_manip.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/stream/format_manip.hpp	(original)
+++ branches/release/boost/spirit/home/karma/stream/format_manip.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -111,7 +111,6 @@
         }
         return os;
     }
-
 }}}
 
 #endif 
Modified: branches/release/boost/spirit/home/karma/stream/format_manip_attr.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/stream/format_manip_attr.hpp	(original)
+++ branches/release/boost/spirit/home/karma/stream/format_manip_attr.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -114,7 +114,6 @@
         return format_manip<Expr, mpl::false_, mpl::true_, Delimiter, vector_type>(
             xpr, d, delimit_flag::dont_predelimit, attr);
     }
-
 }}}
 
 #undef BOOST_SPIRIT_KARMA_ATTRIBUTE_REFERENCE
Modified: branches/release/boost/spirit/home/lex/argument.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/argument.hpp	(original)
+++ branches/release/boost/spirit/home/lex/argument.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -23,7 +23,6 @@
 #include <boost/mpl/bool.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/type_traits/remove_const.hpp>
-#include <boost/utility/enable_if.hpp>
 
 ///////////////////////////////////////////////////////////////////////////////
 namespace boost { namespace spirit { namespace lex
Modified: branches/release/boost/spirit/home/qi/auto/meta_create.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/auto/meta_create.hpp	(original)
+++ branches/release/boost/spirit/home/qi/auto/meta_create.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -142,12 +142,25 @@
         static type const& call() { return spirit::standard::char_; }
     };
     template <>
+    struct meta_create<signed 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<unsigned char>
+    {
+        typedef spirit::standard::char_type type;
+        static type const& call() { return spirit::standard::char_; }
+    };
+
     // boolean generator
     template <>
     struct meta_create<bool>
Modified: branches/release/boost/spirit/home/qi/directive/omit.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/directive/omit.hpp	(original)
+++ branches/release/boost/spirit/home/qi/directive/omit.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -63,7 +63,6 @@
         info what(Context& context) const
         {
             return info("omit", subject.what(context));
-
         }
 
         Subject subject;
Modified: branches/release/boost/spirit/home/qi/directive/skip.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/directive/skip.hpp	(original)
+++ branches/release/boost/spirit/home/qi/directive/skip.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -148,11 +148,11 @@
         typedef skip_parser<Subject, skipper_type> result_type;
 
         template <typename Terminal>
-        result_type operator()(
-            Terminal const& term, Subject const& subject, unused_type) const
+        result_type operator()(Terminal const& term, Subject const& subject
+          , Modifiers const& modifiers) const
         {
             return result_type(subject
-              , compile<qi::domain>(fusion::at_c<0>(term.args)));
+              , compile<qi::domain>(fusion::at_c<0>(term.args), modifiers));
         }
     };
 
Modified: branches/release/boost/spirit/home/qi/nonterminal/grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/nonterminal/grammar.hpp	(original)
+++ branches/release/boost/spirit/home/qi/nonterminal/grammar.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -51,6 +51,12 @@
 
         static size_t const params_size = start_type::params_size;
 
+        template <typename Context, typename Iterator_>
+        struct attribute
+        {
+            typedef typename start_type::attr_type type;
+        };
+
         grammar(
             start_type const& start
           , std::string const& name_ = "unnamed-grammar")
Modified: branches/release/boost/spirit/home/qi/nonterminal/rule.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/nonterminal/rule.hpp	(original)
+++ branches/release/boost/spirit/home/qi/nonterminal/rule.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -368,20 +368,20 @@
       , typename T3_, typename T4_, typename Expr>
     rule<OutputIterator_, T1_, T2_, T3_, T4_>& operator%=(
         rule<OutputIterator_, T1_, T2_, T3_, T4_>& r, Expr const& expr)
-	{
-		// Report invalid expression error as early as possible.
-		// If you got an error_invalid_expression error message here,
-		// then the expression (expr) is not a valid spirit qi expression.
-		BOOST_SPIRIT_ASSERT_MATCH(qi::domain, Expr);
+    {
+        // Report invalid expression error as early as possible.
+        // If you got an error_invalid_expression error message here,
+        // then the expression (expr) is not a valid spirit qi expression.
+        BOOST_SPIRIT_ASSERT_MATCH(qi::domain, Expr);
 
         typedef typename 
             rule<OutputIterator_, T1_, T2_, T3_, T4_>::encoding_modifier_type
         encoding_modifier_type;
 
         r.f = detail::bind_parser<mpl::true_>(
-			compile<qi::domain>(expr, encoding_modifier_type()));
-		return r;
-	}
+            compile<qi::domain>(expr, encoding_modifier_type()));
+        return r;
+    }
 
     template <typename Iterator_, typename T1_, typename T2_
       , typename T3_, typename T4_, typename Expr>
Modified: branches/release/boost/spirit/home/support/attributes.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/attributes.hpp	(original)
+++ branches/release/boost/spirit/home/support/attributes.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -15,6 +15,7 @@
 #include <boost/spirit/home/support/unused.hpp>
 #include <boost/spirit/home/support/has_semantic_action.hpp>
 #include <boost/spirit/home/support/attributes_fwd.hpp>
+#include <boost/spirit/home/support/container.hpp>
 #include <boost/spirit/home/support/detail/hold_any.hpp>
 #include <boost/spirit/home/support/detail/as_variant.hpp>
 #include <boost/optional/optional.hpp>
@@ -703,7 +704,7 @@
             template <typename T>
             void operator()(T& val) const
             {
-                clear(val);
+                spirit::traits::clear(val);
             }
         };
 
@@ -806,7 +807,7 @@
                     is_first = false;
                 else
                     out << ", ";
-                print_attribute(out, val);
+                spirit::traits::print_attribute(out, val);
             }
 
             Out& out;
@@ -822,7 +823,7 @@
             template <typename T>
             void operator()(T const& val) const
             {
-                print_attribute(out, val);
+                spirit::traits::print_attribute(out, val);
             }
 
             Out& out;
@@ -870,7 +871,7 @@
                     if (!first)
                         out << ", ";
                     first = false;
-                    print_attribute(out, traits::deref(i));
+                    spirit::traits::print_attribute(out, traits::deref(i));
                 }
             }
             out << ']';
@@ -900,12 +901,12 @@
     template <typename Out, typename T>
     struct print_attribute_debug<Out, boost::optional<T> >
     {
-        static void call(Out& out, T const& val)
+        static void call(Out& out, boost::optional<T> const& val)
         {
             if (val)
-                print_attribute(out, *val);
+                spirit::traits::print_attribute(out, *val);
             else
-                out << "<empty>";
+                out << "[empty]";
         }
     };
 
Modified: branches/release/boost/spirit/home/support/detail/hold_any.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/hold_any.hpp	(original)
+++ branches/release/boost/spirit/home/support/detail/hold_any.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -25,6 +25,7 @@
 #include <boost/static_assert.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/assert.hpp>
+#include <boost/detail/sp_typeinfo.hpp>
 
 #include <stdexcept>
 #include <typeinfo>
@@ -44,7 +45,7 @@
     struct bad_any_cast
       : std::bad_cast
     {
-        bad_any_cast(std::type_info const& src, std::type_info const& dest)
+        bad_any_cast(boost::detail::sp_typeinfo const& src, boost::detail::sp_typeinfo const& dest)
           : from(src.name()), to(dest.name())
         {}
 
@@ -59,7 +60,7 @@
         // function pointer table
         struct fxn_ptr_table
         {
-            std::type_info const& (*get_type)();
+            boost::detail::sp_typeinfo const& (*get_type)();
             void (*static_delete)(void**);
             void (*destruct)(void**);
             void (*clone)(void* const*, void**);
@@ -78,9 +79,9 @@
             template<typename T>
             struct type
             {
-                static std::type_info const& get_type()
+                static boost::detail::sp_typeinfo const& get_type()
                 {
-                    return typeid(T);
+                    return BOOST_SP_TYPEID(T);
                 }
                 static void static_delete(void** x)
                 {
@@ -120,9 +121,9 @@
             template<typename T>
             struct type
             {
-                static std::type_info const& get_type()
+                static boost::detail::sp_typeinfo const& get_type()
                 {
-                    return typeid(T);
+                    return BOOST_SP_TYPEID(T);
                 }
                 static void static_delete(void** x)
                 {
@@ -302,7 +303,7 @@
             return *this;
         }
 
-        std::type_info const& type() const
+        boost::detail::sp_typeinfo const& type() const
         {
             return table->get_type();
         }
@@ -310,8 +311,8 @@
         template <typename T>
         T const& cast() const
         {
-            if (type() != typeid(T))
-              throw bad_any_cast(type(), typeid(T));
+            if (type() != BOOST_SP_TYPEID(T))
+              throw bad_any_cast(type(), BOOST_SP_TYPEID(T));
 
             return spirit::detail::get_table<T>::is_small::value ?
                 *reinterpret_cast<T const*>(&object) :
@@ -370,7 +371,7 @@
     template <typename T>
     inline T* any_cast (hold_any* operand)
     {
-        if (operand && operand->type() == typeid(T)) {
+        if (operand && operand->type() == BOOST_SP_TYPEID(T)) {
             return spirit::detail::get_table<T>::is_small::value ?
                 reinterpret_cast<T*>(&operand->object) :
                 reinterpret_cast<T*>(operand->object);
@@ -401,7 +402,7 @@
 
         nonref* result = any_cast<nonref>(&operand);
         if(!result)
-            boost::throw_exception(bad_any_cast(operand.type(), typeid(T)));
+            boost::throw_exception(bad_any_cast(operand.type(), BOOST_SP_TYPEID(T)));
         return *result;
     }
 
Modified: branches/release/boost/spirit/home/support/string_traits.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/string_traits.hpp	(original)
+++ branches/release/boost/spirit/home/support/string_traits.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -15,7 +15,6 @@
 #include <string>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/identity.hpp>
-#include <boost/utility/enable_if.hpp>
 #include <boost/proto/proto_fwd.hpp>
 #if defined(__GNUC__) && (__GNUC__ < 4)
 #include <boost/type_traits/add_const.hpp>
Modified: branches/release/boost/spirit/include/version.hpp
==============================================================================
--- branches/release/boost/spirit/include/version.hpp	(original)
+++ branches/release/boost/spirit/include/version.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -14,7 +14,7 @@
 //  This is the version of the current Spirit distribution
 //
 ///////////////////////////////////////////////////////////////////////////////
-#define SPIRIT_VERSION 0x2040
+#define SPIRIT_VERSION 0x2041
 #define SPIRIT_PIZZA_VERSION IANS_MEATZA  // :-)
 
 #endif
Modified: branches/release/libs/spirit/classic/test/symbols_add_null.cpp
==============================================================================
--- branches/release/libs/spirit/classic/test/symbols_add_null.cpp	(original)
+++ branches/release/libs/spirit/classic/test/symbols_add_null.cpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -7,6 +7,12 @@
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
 
+// This test requires NDEBUG to be undefined,  because it depends on 
+// BOOST_SPIRIT_ASSERT throwing an exception.
+#ifdef NDEBUG  
+#  undef NDEBUG  
+#endif  
+
 #include <stdexcept>
 
 #define BOOST_SPIRIT_ASSERT_EXCEPTION ::spirit_exception
Modified: branches/release/libs/spirit/example/qi/mini_c/mini_cb.hpp
==============================================================================
--- branches/release/libs/spirit/example/qi/mini_c/mini_cb.hpp	(original)
+++ branches/release/libs/spirit/example/qi/mini_c/mini_cb.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -28,25 +28,25 @@
         ;
 
     equality_expr =
-        relational_expr
-        >> *(   ("==" > relational_expr     [op(op_eq)])
-            |   ("!=" > relational_expr     [op(op_neq)])
+        logical_expr
+        >> *(   ("==" > logical_expr        [op(op_eq)])
+            |   ("!=" > logical_expr        [op(op_neq)])
             )
         ;
 
-    relational_expr =
-        logical_expr
-        >> *(   ("<=" > logical_expr        [op(op_lte)])
-            |   ('<' > logical_expr         [op(op_lt)])
-            |   (">=" > logical_expr        [op(op_gte)])
-            |   ('>' > logical_expr         [op(op_gt)])
+    logical_expr =
+        relational_expr
+        >> *(   ("&&" > relational_expr     [op(op_and)])
+            |   ("||" > relational_expr     [op(op_or)])
             )
         ;
 
-    logical_expr =
+    relational_expr =
         additive_expr
-        >> *(   ("&&" > additive_expr       [op(op_and)])
-            |   ("||" > additive_expr       [op(op_or)])
+        >> *(   ("<=" > additive_expr       [op(op_lte)])
+            |   ('<' > additive_expr        [op(op_lt)])
+            |   (">=" > additive_expr       [op(op_gte)])
+            |   ('>' > additive_expr        [op(op_gt)])
             )
         ;
 
Modified: branches/release/libs/spirit/example/qi/mini_c/mini_cc.hpp
==============================================================================
--- branches/release/libs/spirit/example/qi/mini_c/mini_cc.hpp	(original)
+++ branches/release/libs/spirit/example/qi/mini_c/mini_cc.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -23,6 +23,8 @@
   , add_var(var_adder(vars, nvars))
   , op(code)
 {
+    namespace phx = boost::phoenix;
+
     identifier %=
         raw[lexeme[alpha >> *(alnum | '_')]]
         ;
@@ -42,7 +44,7 @@
             ]
         >   !var_ref                // make sure the variable isn't redeclared
         >   identifier      [add_var(_1)]
-        >   (';' | '=' > assignment_rhs(ref(nvars)-1))
+        >   (';' | '=' > assignment_rhs(phx::ref(nvars)-1))
         ;
 
     assignment =
@@ -61,12 +63,12 @@
         >>  '('
         >   expr            [
                                 op(op_jump_if, 0), // we shall fill this (0) in later
-                                _a = size(ref(code))-1 // mark its position
+                                _a = size(phx::ref(code))-1 // mark its position
                             ]
         >   ')'
         >   statement_      [
                                 // now we know where to jump to (after the if branch)
-                                ref(code)[_a] = size(ref(code))
+                                phx::ref(code)[_a] = size(phx::ref(code))
                             ]
         >>
            -(
@@ -74,31 +76,31 @@
                     "else"
                     >> !(alnum | '_') // make sure we have whole words
                 ]                                [
-                                ref(code)[_a] += 2, // adjust for the "else" jump
+                                phx::ref(code)[_a] += 2, // adjust for the "else" jump
                                 op(op_jump, 0), // we shall fill this (0) in later
-                                _a = size(ref(code))-1 // mark its position
+                                _a = size(phx::ref(code))-1 // mark its position
                             ]
             >   statement_  [
                                 // now we know where to jump to (after the else branch)
-                                ref(code)[_a] = size(ref(code))
+                                phx::ref(code)[_a] = size(phx::ref(code))
                             ]
             )
         ;
 
     while_statement =
             lit("while")    [
-                                _a = size(ref(code)) // mark our position
+                                _a = size(phx::ref(code)) // mark our position
                             ]
         >>  '('
         >   expr            [
                                 op(op_jump_if, 0), // we shall fill this (0) in later
-                                _b = size(ref(code))-1 // mark its position
+                                _b = size(phx::ref(code))-1 // mark its position
                             ]
         >   ')'
         >   statement_      [
                                 op(op_jump, _a), // loop back
                                 // now we know where to jump to (to exit the loop)
-                                ref(code)[_b] = size(ref(code))
+                                phx::ref(code)[_b] = size(phx::ref(code))
                             ]
         ;
 
@@ -112,7 +114,7 @@
                 >> !(alnum | '_') // make sure we have whole words
             ]
         >> -(
-                eps(ref(has_return)) > expr     [op(op_return)]
+                eps(phx::ref(has_return)) > expr     [op(op_return)]
             )
         >   ';'
         ;
Modified: branches/release/libs/spirit/example/qi/mini_c/mini_cd.hpp
==============================================================================
--- branches/release/libs/spirit/example/qi/mini_c/mini_cd.hpp	(original)
+++ branches/release/libs/spirit/example/qi/mini_c/mini_cd.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -21,6 +21,8 @@
   , state_reset(function_state_reset(code, statement_.vars, statement_.nvars))
   , op(code)
 {
+    namespace phx = boost::phoenix;
+
     bool& has_return = statement_.has_return;
     int& nvars = statement_.nvars;
     boost::phoenix::function<var_adder>& add_var = statement_.add_var;
@@ -31,8 +33,8 @@
 
     function =
             (
-                lit("void")                     [ref(has_return) = false]
-            |   lit("int")                      [ref(has_return) = true]
+                lit("void")                     [phx::ref(has_return) = false]
+            |   lit("int")                      [phx::ref(has_return) = true]
             )
         >>  !functions                          // no duplicate functions!
         >>  identifier                          [_a = _1]
@@ -43,11 +45,11 @@
             )
         >   ')'
         >   lit('{')                            [
-                                                    _b = size(ref(code)),
+                                                    _b = size(phx::ref(code)),
                                                     add_function(
                                                         _a     // function name
-                                                      , ref(nvars)      // arity
-                                                      , size(ref(code)) // address
+                                                      , phx::ref(nvars)      // arity
+                                                      , size(phx::ref(code)) // address
                                                     ),
                                                     op(op_stk_adj, 0)   // adjust this later
                                                 ]
Modified: branches/release/libs/spirit/optimization/high_resolution_timer.hpp
==============================================================================
--- branches/release/libs/spirit/optimization/high_resolution_timer.hpp	(original)
+++ branches/release/libs/spirit/optimization/high_resolution_timer.hpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -14,11 +14,11 @@
 #include <unistd.h>
 #endif
 #include <time.h>
+#include <stdexcept>
+#include <limits>
 
 #if defined(BOOST_WINDOWS)
 
-#include <stdexcept>
-#include <limits>
 #include <windows.h>
 
 namespace util 
@@ -304,8 +304,6 @@
 
 // For platforms that do not support _POSIX_TIMERS but do have
 // GETTIMEOFDAY, which is still preferable to std::clock()
-#include <stdexcept>
-#include <limits>
 #include <sys/time.h>
 
 namespace util
Modified: branches/release/libs/spirit/test/Jamfile
==============================================================================
--- branches/release/libs/spirit/test/Jamfile	(original)
+++ branches/release/libs/spirit/test/Jamfile	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -160,6 +160,7 @@
     [ run karma/karma_optional_double.cpp     : : : : ]
     [ run karma/semantic_action_attribute.cpp : : : : ]
     [ compile qi/single_element_sequence_attribute.cpp : : qi_single_element_sequence_attribute ]
+    [ compile qi/debug_optional.cpp           : : qi_debug_optional ]
 
     ;
 
Modified: branches/release/libs/spirit/test/qi/kleene.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/kleene.cpp	(original)
+++ branches/release/libs/spirit/test/qi/kleene.cpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -8,7 +8,6 @@
 #include <vector>
 
 #include <boost/detail/lightweight_test.hpp>
-#include <boost/utility/enable_if.hpp>
 
 #include <boost/spirit/include/qi_operator.hpp>
 #include <boost/spirit/include/qi_char.hpp>
Modified: branches/release/libs/spirit/test/qi/list.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/list.cpp	(original)
+++ branches/release/libs/spirit/test/qi/list.cpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -10,7 +10,6 @@
 #include <map>
 
 #include <boost/detail/lightweight_test.hpp>
-#include <boost/utility/enable_if.hpp>
 
 #include <boost/spirit/include/qi_operator.hpp>
 #include <boost/spirit/include/qi_char.hpp>
Modified: branches/release/libs/spirit/test/qi/real.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/real.cpp	(original)
+++ branches/release/libs/spirit/test/qi/real.cpp	2010-10-18 08:14:32 EDT (Mon, 18 Oct 2010)
@@ -413,5 +413,14 @@
         //~ BOOST_TEST(test_attr("-123456e6", double_, n));
     //~ }
 
+    // this should pass, but currently doesn't because of the way the real 
+    // parser handles the fractional part of a number
+    {
+        using boost::spirit::qi::float_;
+
+        float f;
+        BOOST_TEST(test_attr("123233.4124", float_, f)  && f == 123233.4140625f);
+    }
+
     return boost::report_errors();
 }