Boost logo

Boost-Commit :

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();
 }


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk