Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r68069 - in branches/release: . boost boost/archive boost/bimap boost/config boost/detail boost/fusion boost/fusion/container/list/detail boost/gil boost/graph boost/icl boost/integer boost/interprocess boost/intrusive boost/io boost/iterator boost/numeric/ublas boost/program_options boost/property_tree boost/python boost/regex boost/serialization boost/signals boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/karma/action boost/spirit/home/karma/char boost/spirit/home/karma/detail boost/spirit/home/karma/directive boost/spirit/home/karma/nonterminal boost/spirit/home/karma/numeric boost/spirit/home/karma/operator boost/spirit/home/karma/string boost/spirit/home/lex boost/spirit/home/lex/qi boost/spirit/home/phoenix/detail boost/spirit/home/qi boost/spirit/home/qi/action boost/spirit/home/qi/auxiliary boost/spirit/home/qi/char boost/spirit/home/qi/detail boost/spirit/home/qi/directive boost/spirit/home/qi/nonterminal boost/spirit/home/qi/numeric boost/spirit/home/qi/operator boost/spirit/home/qi/string boost/spirit/home/support boost/spirit/home/support/utree boost/spirit/home/support/utree/detail boost/statechart boost/thread boost/tr1 boost/typeof boost/utility boost/uuid boost/variant boost/wave doc libs libs/array/doc libs/array/test libs/bimap libs/config libs/date_time libs/fusion libs/graph_parallel libs/icl libs/icl/doc libs/icl/doc/html/header/boost/icl libs/icl/test/test_doc_code_ libs/integer libs/interprocess libs/intrusive libs/math libs/math/doc libs/math/doc/sf_and_dist libs/math/doc/sf_and_dist/html/math_toolkit/main_overview libs/mpi/build libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/python libs/regex libs/serialization libs/serialization/doc libs/serialization/example libs/serialization/src libs/serialization/test libs/serialization/vc7ide libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/doc/advanced libs/spirit/doc/html libs/spirit/doc/html/spirit libs/spirit/doc/html/spirit/abstracts libs/spirit/doc/html/spirit/abstracts/attributes libs/spirit/doc/html/spirit/advanced libs/spirit/doc/html/spirit/advanced/customize libs/spirit/doc/html/spirit/advanced/customize/assign_to libs/spirit/doc/html/spirit/advanced/customize/auto libs/spirit/doc/html/spirit/advanced/customize/iterate libs/spirit/doc/html/spirit/advanced/customize/store_value libs/spirit/doc/html/spirit/advanced/indepth libs/spirit/doc/html/spirit/karma libs/spirit/doc/html/spirit/karma/quick_reference libs/spirit/doc/html/spirit/karma/reference libs/spirit/doc/html/spirit/karma/reference/auxiliary libs/spirit/doc/html/spirit/karma/reference/binary libs/spirit/doc/html/spirit/karma/reference/char libs/spirit/doc/html/spirit/karma/reference/directive libs/spirit/doc/html/spirit/karma/reference/generate_api libs/spirit/doc/html/spirit/karma/reference/generator_concepts libs/spirit/doc/html/spirit/karma/reference/nonterminal libs/spirit/doc/html/spirit/karma/reference/numeric libs/spirit/doc/html/spirit/karma/reference/operator libs/spirit/doc/html/spirit/karma/reference/stream libs/spirit/doc/html/spirit/karma/reference/string libs/spirit/doc/html/spirit/karma/tutorials libs/spirit/doc/html/spirit/lex libs/spirit/doc/html/spirit/lex/abstracts libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives libs/spirit/doc/html/spirit/lex/quick_reference libs/spirit/doc/html/spirit/lex/reference libs/spirit/doc/html/spirit/lex/reference/lexer_concepts libs/spirit/doc/html/spirit/lex/reference/primitives libs/spirit/doc/html/spirit/lex/tutorials libs/spirit/doc/html/spirit/notes libs/spirit/doc/html/spirit/qi libs/spirit/doc/html/spirit/qi/quick_reference libs/spirit/doc/html/spirit/qi/reference libs/spirit/doc/html/spirit/qi/reference/auxiliary libs/spirit/doc/html/spirit/qi/reference/binary libs/spirit/doc/html/spirit/qi/reference/char libs/spirit/doc/html/spirit/qi/reference/directive libs/spirit/doc/html/spirit/qi/reference/nonterminal libs/spirit/doc/html/spirit/qi/reference/numeric libs/spirit/doc/html/spirit/qi/reference/operator libs/spirit/doc/html/spirit/qi/reference/parse_api libs/spirit/doc/html/spirit/qi/reference/parser_concepts libs/spirit/doc/html/spirit/qi/reference/stream libs/spirit/doc/html/spirit/qi/reference/string libs/spirit/doc/html/spirit/qi/tutorials libs/spirit/doc/html/spirit/support libs/spirit/doc/html/spirit/what_s_new libs/spirit/doc/karma libs/spirit/doc/qi libs/spirit/example libs/spirit/example/qi libs/spirit/phoenix libs/spirit/test libs/spirit/test/karma libs/spirit/test/lex libs/spirit/test/qi libs/spirit/test/support libs/statechart libs/static_assert libs/thread libs/timer libs/tr1 libs/typeof/doc libs/utility libs/utility/swap/test libs/uuid libs/wave more more/getting_started status tools tools/bcp tools/build/v2 tools/inspect tools/inspect/build tools/regression tools/regression/src tools/release tools/wave
From: hartmut.kaiser_at_[hidden]
Date: 2011-01-12 14:23:00


Author: hkaiser
Date: 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
New Revision: 68069
URL: http://svn.boost.org/trac/boost/changeset/68069

Log:
Spirit: merge from trunk, more to come
Added:
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/as.html
      - copied unchanged from r67553, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/as.html
   branches/release/libs/spirit/test/karma/alternative1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/alternative1.cpp
   branches/release/libs/spirit/test/karma/alternative2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/alternative2.cpp
   branches/release/libs/spirit/test/karma/auto.hpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/auto.hpp
   branches/release/libs/spirit/test/karma/auto1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/auto1.cpp
   branches/release/libs/spirit/test/karma/auto2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/auto2.cpp
   branches/release/libs/spirit/test/karma/auto3.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/auto3.cpp
   branches/release/libs/spirit/test/karma/binary1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/binary1.cpp
   branches/release/libs/spirit/test/karma/binary2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/binary2.cpp
   branches/release/libs/spirit/test/karma/binary3.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/binary3.cpp
   branches/release/libs/spirit/test/karma/case_handling1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/case_handling1.cpp
   branches/release/libs/spirit/test/karma/case_handling2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/case_handling2.cpp
   branches/release/libs/spirit/test/karma/case_handling3.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/case_handling3.cpp
   branches/release/libs/spirit/test/karma/char1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/char1.cpp
   branches/release/libs/spirit/test/karma/char2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/char2.cpp
   branches/release/libs/spirit/test/karma/int1.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/karma/int1.cpp
   branches/release/libs/spirit/test/karma/int2.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/karma/int2.cpp
   branches/release/libs/spirit/test/karma/int3.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/karma/int3.cpp
   branches/release/libs/spirit/test/karma/pattern1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/pattern1.cpp
   branches/release/libs/spirit/test/karma/pattern2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/pattern2.cpp
   branches/release/libs/spirit/test/karma/pattern3.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/pattern3.cpp
   branches/release/libs/spirit/test/karma/pattern4.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/pattern4.cpp
   branches/release/libs/spirit/test/karma/real.hpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/karma/real.hpp
   branches/release/libs/spirit/test/karma/real1.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/karma/real1.cpp
   branches/release/libs/spirit/test/karma/real2.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/karma/real2.cpp
   branches/release/libs/spirit/test/karma/real3.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/karma/real3.cpp
   branches/release/libs/spirit/test/karma/regression_optional_double.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/regression_optional_double.cpp
   branches/release/libs/spirit/test/karma/regression_real_scientific.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/regression_real_scientific.cpp
   branches/release/libs/spirit/test/karma/regression_semantic_action_attribute.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/regression_semantic_action_attribute.cpp
   branches/release/libs/spirit/test/karma/repeat1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/repeat1.cpp
   branches/release/libs/spirit/test/karma/repeat2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/repeat2.cpp
   branches/release/libs/spirit/test/karma/sequence1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/sequence1.cpp
   branches/release/libs/spirit/test/karma/sequence2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/sequence2.cpp
   branches/release/libs/spirit/test/karma/symbols1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/symbols1.cpp
   branches/release/libs/spirit/test/karma/symbols2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/symbols2.cpp
   branches/release/libs/spirit/test/karma/symbols3.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/symbols3.cpp
   branches/release/libs/spirit/test/karma/utree1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/utree1.cpp
   branches/release/libs/spirit/test/karma/utree2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/utree2.cpp
   branches/release/libs/spirit/test/karma/utree3.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/utree3.cpp
   branches/release/libs/spirit/test/karma/wstream.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/karma/wstream.cpp
   branches/release/libs/spirit/test/lex/regression_basic_lexer.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_basic_lexer.cpp
   branches/release/libs/spirit/test/lex/regression_file_iterator1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_file_iterator1.cpp
   branches/release/libs/spirit/test/lex/regression_file_iterator2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_file_iterator2.cpp
   branches/release/libs/spirit/test/lex/regression_file_iterator3.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_file_iterator3.cpp
   branches/release/libs/spirit/test/lex/regression_file_iterator4.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_file_iterator4.cpp
   branches/release/libs/spirit/test/lex/regression_matlib_dynamic.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_matlib_dynamic.cpp
   branches/release/libs/spirit/test/lex/regression_matlib_generate.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_matlib_generate.cpp
   branches/release/libs/spirit/test/lex/regression_matlib_generate_switch.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_matlib_generate_switch.cpp
   branches/release/libs/spirit/test/lex/regression_matlib_static.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_matlib_static.cpp
   branches/release/libs/spirit/test/lex/regression_matlib_switch.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_matlib_switch.cpp
   branches/release/libs/spirit/test/lex/regression_syntax_error.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_syntax_error.cpp
   branches/release/libs/spirit/test/lex/regression_wide.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_wide.cpp
   branches/release/libs/spirit/test/lex/regression_word_count.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/regression_word_count.cpp
   branches/release/libs/spirit/test/lex/state_switcher.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/lex/state_switcher.cpp
   branches/release/libs/spirit/test/qi/attribute1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/attribute1.cpp
   branches/release/libs/spirit/test/qi/attribute2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/attribute2.cpp
   branches/release/libs/spirit/test/qi/bool.hpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/qi/bool.hpp
   branches/release/libs/spirit/test/qi/bool1.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/qi/bool1.cpp
   branches/release/libs/spirit/test/qi/bool2.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/qi/bool2.cpp
   branches/release/libs/spirit/test/qi/int.hpp
      - copied, changed from r67508, /trunk/libs/spirit/test/qi/int.hpp
   branches/release/libs/spirit/test/qi/int1.cpp
      - copied unchanged from r67508, /trunk/libs/spirit/test/qi/int1.cpp
   branches/release/libs/spirit/test/qi/int2.cpp
      - copied, changed from r67508, /trunk/libs/spirit/test/qi/int2.cpp
   branches/release/libs/spirit/test/qi/int3.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/qi/int3.cpp
   branches/release/libs/spirit/test/qi/match_manip.hpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/match_manip.hpp
   branches/release/libs/spirit/test/qi/match_manip1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/match_manip1.cpp
   branches/release/libs/spirit/test/qi/match_manip2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/match_manip2.cpp
   branches/release/libs/spirit/test/qi/match_manip3.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/match_manip3.cpp
   branches/release/libs/spirit/test/qi/real.hpp
      - copied, changed from r67494, /trunk/libs/spirit/test/qi/real.hpp
   branches/release/libs/spirit/test/qi/real1.cpp
      - copied, changed from r67494, /trunk/libs/spirit/test/qi/real1.cpp
   branches/release/libs/spirit/test/qi/real2.cpp
      - copied, changed from r67494, /trunk/libs/spirit/test/qi/real2.cpp
   branches/release/libs/spirit/test/qi/real3.cpp
      - copied, changed from r67494, /trunk/libs/spirit/test/qi/real3.cpp
   branches/release/libs/spirit/test/qi/real4.cpp
      - copied, changed from r67494, /trunk/libs/spirit/test/qi/real4.cpp
   branches/release/libs/spirit/test/qi/real5.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/qi/real5.cpp
   branches/release/libs/spirit/test/qi/regression_attr_with_action.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/regression_attr_with_action.cpp
   branches/release/libs/spirit/test/qi/regression_clear.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/regression_clear.cpp
   branches/release/libs/spirit/test/qi/regression_debug_optional.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/regression_debug_optional.cpp
   branches/release/libs/spirit/test/qi/regression_float_fraction.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/qi/regression_float_fraction.cpp
   branches/release/libs/spirit/test/qi/regression_lazy_repeat.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/qi/regression_lazy_repeat.cpp
   branches/release/libs/spirit/test/qi/regression_one_element_fusion_sequence.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/regression_one_element_fusion_sequence.cpp
   branches/release/libs/spirit/test/qi/regression_one_element_sequence_attribute.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/regression_one_element_sequence_attribute.cpp
   branches/release/libs/spirit/test/qi/regression_reorder.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/regression_reorder.cpp
   branches/release/libs/spirit/test/qi/regression_repeat.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/regression_repeat.cpp
   branches/release/libs/spirit/test/qi/rule1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/rule1.cpp
   branches/release/libs/spirit/test/qi/rule2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/rule2.cpp
   branches/release/libs/spirit/test/qi/rule3.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/rule3.cpp
   branches/release/libs/spirit/test/qi/rule4.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/rule4.cpp
   branches/release/libs/spirit/test/qi/symbols1.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/symbols1.cpp
   branches/release/libs/spirit/test/qi/symbols2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/symbols2.cpp
   branches/release/libs/spirit/test/qi/uint.hpp
      - copied, changed from r67508, /trunk/libs/spirit/test/qi/uint.hpp
   branches/release/libs/spirit/test/qi/uint1.cpp
      - copied, changed from r67508, /trunk/libs/spirit/test/qi/uint1.cpp
   branches/release/libs/spirit/test/qi/uint2.cpp
      - copied, changed from r67508, /trunk/libs/spirit/test/qi/uint2.cpp
   branches/release/libs/spirit/test/qi/uint3.cpp
      - copied unchanged from r67553, /trunk/libs/spirit/test/qi/uint3.cpp
   branches/release/libs/spirit/test/qi/utree1.cpp
      - copied, changed from r67494, /trunk/libs/spirit/test/qi/utree1.cpp
   branches/release/libs/spirit/test/qi/utree2.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/utree2.cpp
   branches/release/libs/spirit/test/qi/utree3.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/utree3.cpp
   branches/release/libs/spirit/test/qi/utree4.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/qi/utree4.cpp
   branches/release/libs/spirit/test/support/regression_multi_pass_functor.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/support/regression_multi_pass_functor.cpp
   branches/release/libs/spirit/test/support/regression_multi_pass_parse.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/support/regression_multi_pass_parse.cpp
   branches/release/libs/spirit/test/support/regression_multi_pass_position_iterator.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/support/regression_multi_pass_position_iterator.cpp
   branches/release/libs/spirit/test/support/utree.cpp
      - copied unchanged from r67494, /trunk/libs/spirit/test/support/utree.cpp
Removed:
   branches/release/libs/spirit/test/karma/alternative.cpp
   branches/release/libs/spirit/test/karma/auto.cpp
   branches/release/libs/spirit/test/karma/binary.cpp
   branches/release/libs/spirit/test/karma/case_handling.cpp
   branches/release/libs/spirit/test/karma/char.cpp
   branches/release/libs/spirit/test/karma/int_numerics.cpp
   branches/release/libs/spirit/test/karma/karma_optional_double.cpp
   branches/release/libs/spirit/test/karma/pattern.cpp
   branches/release/libs/spirit/test/karma/real_numerics.cpp
   branches/release/libs/spirit/test/karma/real_scientific.cpp
   branches/release/libs/spirit/test/karma/repeat.cpp
   branches/release/libs/spirit/test/karma/semantic_action_attribute.cpp
   branches/release/libs/spirit/test/karma/sequence.cpp
   branches/release/libs/spirit/test/karma/symbols.cpp
   branches/release/libs/spirit/test/karma/utree.cpp
   branches/release/libs/spirit/test/lex/regression001.cpp
   branches/release/libs/spirit/test/lex/regression002.cpp
   branches/release/libs/spirit/test/lex/regression003.cpp
   branches/release/libs/spirit/test/lex/regression003_generate.cpp
   branches/release/libs/spirit/test/lex/regression003_generate_switch.cpp
   branches/release/libs/spirit/test/lex/regression003_switch.cpp
   branches/release/libs/spirit/test/lex/regression004.cpp
   branches/release/libs/spirit/test/lex/regression005.cpp
   branches/release/libs/spirit/test/lex/regression006.cpp
   branches/release/libs/spirit/test/lex/regression007.cpp
   branches/release/libs/spirit/test/lex/regression008.cpp
   branches/release/libs/spirit/test/lex/regression009.cpp
   branches/release/libs/spirit/test/lex/regression010.cpp
   branches/release/libs/spirit/test/lex/state_switcher_test.cpp
   branches/release/libs/spirit/test/qi/attr_with_action.cpp
   branches/release/libs/spirit/test/qi/attribute.cpp
   branches/release/libs/spirit/test/qi/bool.cpp
   branches/release/libs/spirit/test/qi/clear_test.cpp
   branches/release/libs/spirit/test/qi/debug_optional.cpp
   branches/release/libs/spirit/test/qi/int.cpp
   branches/release/libs/spirit/test/qi/match_manip.cpp
   branches/release/libs/spirit/test/qi/one_element_fusion_sequence.cpp
   branches/release/libs/spirit/test/qi/real.cpp
   branches/release/libs/spirit/test/qi/reorder_test.cpp
   branches/release/libs/spirit/test/qi/repeat_regression.cpp
   branches/release/libs/spirit/test/qi/rule.cpp
   branches/release/libs/spirit/test/qi/single_element_sequence_attribute.cpp
   branches/release/libs/spirit/test/qi/symbols.cpp
   branches/release/libs/spirit/test/qi/uint.cpp
   branches/release/libs/spirit/test/qi/utree.cpp
   branches/release/libs/spirit/test/support/multi_pass_regression001.cpp
   branches/release/libs/spirit/test/support/multi_pass_regression002.cpp
   branches/release/libs/spirit/test/support/multi_pass_regression003.cpp
   branches/release/libs/spirit/test/support/utree_test.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/archive/ (props changed)
   branches/release/boost/array.hpp (props changed)
   branches/release/boost/bimap/ (props changed)
   branches/release/boost/concept_check.hpp (props changed)
   branches/release/boost/config/ (props changed)
   branches/release/boost/config.hpp (props changed)
   branches/release/boost/detail/endian.hpp (props changed)
   branches/release/boost/fusion/ (props changed)
   branches/release/boost/fusion/container/list/detail/build_cons.hpp (props changed)
   branches/release/boost/gil/ (props changed)
   branches/release/boost/graph/ (props changed)
   branches/release/boost/icl/ (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/iterator/iterator_facade.hpp (props changed)
   branches/release/boost/math_fwd.hpp (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/python/ (props changed)
   branches/release/boost/regex/ (props changed)
   branches/release/boost/serialization/ (props changed)
   branches/release/boost/signals/ (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 (props changed)
   branches/release/boost/statechart/ (props changed)
   branches/release/boost/thread/ (props changed)
   branches/release/boost/thread.hpp (props changed)
   branches/release/boost/token_functions.hpp (props changed)
   branches/release/boost/tr1/ (props changed)
   branches/release/boost/typeof/message.hpp (props changed)
   branches/release/boost/typeof/register_functions.hpp (props changed)
   branches/release/boost/typeof/register_functions_iterate.hpp (props changed)
   branches/release/boost/typeof/typeof.hpp (props changed)
   branches/release/boost/typeof/unsupported.hpp (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/array/doc/array.xml (props changed)
   branches/release/libs/array/test/Jamfile.v2 (props changed)
   branches/release/libs/array/test/array0.cpp (props changed)
   branches/release/libs/array/test/array2.cpp (props changed)
   branches/release/libs/array/test/array6.cpp (props changed)
   branches/release/libs/bimap/ (props changed)
   branches/release/libs/config/ (props changed)
   branches/release/libs/date_time/ (props changed)
   branches/release/libs/fusion/ (props changed)
   branches/release/libs/graph_parallel/ (props changed)
   branches/release/libs/icl/ (props changed)
   branches/release/libs/icl/doc/ (props changed)
   branches/release/libs/icl/doc/html/header/boost/icl/ (props changed)
   branches/release/libs/icl/test/test_doc_code_/ (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/ (props changed)
   branches/release/libs/math/doc/sf_and_dist/ (props changed)
   branches/release/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html (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/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/python/ (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/example/ (props changed)
   branches/release/libs/serialization/src/ (props changed)
   branches/release/libs/serialization/test/test_diamond_complex.cpp (props changed)
   branches/release/libs/serialization/vc7ide/ (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/doc/html/spirit/support/utree.html (contents, 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/thread/ (props changed)
   branches/release/libs/timer/ (props changed)
   branches/release/libs/tr1/ (props changed)
   branches/release/libs/typeof/doc/typeof.qbk (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/build/v2/ (props changed)
   branches/release/tools/build/v2/user-config.jam (props changed)
   branches/release/tools/inspect/ (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/detail/container_fwd.hpp | 6
   branches/release/boost/spirit/home/karma/action/action.hpp | 8
   branches/release/boost/spirit/home/karma/char/char.hpp | 2
   branches/release/boost/spirit/home/karma/detail/as.hpp | 16
   branches/release/boost/spirit/home/karma/detail/pass_container.hpp | 6
   branches/release/boost/spirit/home/karma/directive/as.hpp | 12
   branches/release/boost/spirit/home/karma/directive/buffer.hpp | 8
   branches/release/boost/spirit/home/karma/directive/center_alignment.hpp | 16
   branches/release/boost/spirit/home/karma/directive/columns.hpp | 8
   branches/release/boost/spirit/home/karma/directive/delimit.hpp | 17
   branches/release/boost/spirit/home/karma/directive/duplicate.hpp | 8
   branches/release/boost/spirit/home/karma/directive/left_alignment.hpp | 14
   branches/release/boost/spirit/home/karma/directive/maxwidth.hpp | 8
   branches/release/boost/spirit/home/karma/directive/no_delimit.hpp | 8
   branches/release/boost/spirit/home/karma/directive/omit.hpp | 8
   branches/release/boost/spirit/home/karma/directive/repeat.hpp | 12
   branches/release/boost/spirit/home/karma/directive/right_alignment.hpp | 16
   branches/release/boost/spirit/home/karma/directive/verbatim.hpp | 8
   branches/release/boost/spirit/home/karma/nonterminal/grammar.hpp | 14
   branches/release/boost/spirit/home/karma/nonterminal/rule.hpp | 14
   branches/release/boost/spirit/home/karma/numeric/bool.hpp | 4
   branches/release/boost/spirit/home/karma/numeric/int.hpp | 19
   branches/release/boost/spirit/home/karma/numeric/real.hpp | 4
   branches/release/boost/spirit/home/karma/numeric/uint.hpp | 14
   branches/release/boost/spirit/home/karma/operator/alternative.hpp | 18 +
   branches/release/boost/spirit/home/karma/operator/and_predicate.hpp | 8
   branches/release/boost/spirit/home/karma/operator/kleene.hpp | 12
   branches/release/boost/spirit/home/karma/operator/list.hpp | 12
   branches/release/boost/spirit/home/karma/operator/not_predicate.hpp | 8
   branches/release/boost/spirit/home/karma/operator/optional.hpp | 8
   branches/release/boost/spirit/home/karma/operator/plus.hpp | 16
   branches/release/boost/spirit/home/karma/operator/sequence.hpp | 38 ++
   branches/release/boost/spirit/home/karma/reference.hpp | 9
   branches/release/boost/spirit/home/karma/string/lit.hpp | 18
   branches/release/boost/spirit/home/lex/argument.hpp | 2
   branches/release/boost/spirit/home/lex/qi/state_switcher.hpp | 6
   branches/release/boost/spirit/home/phoenix/detail/type_deduction.hpp | 4
   branches/release/boost/spirit/home/qi/action/action.hpp | 8
   branches/release/boost/spirit/home/qi/auxiliary/lazy.hpp | 25 ++
   branches/release/boost/spirit/home/qi/char/char.hpp | 4
   branches/release/boost/spirit/home/qi/detail/attributes.hpp | 10
   branches/release/boost/spirit/home/qi/detail/pass_container.hpp | 7
   branches/release/boost/spirit/home/qi/directive/as.hpp | 9
   branches/release/boost/spirit/home/qi/directive/hold.hpp | 8
   branches/release/boost/spirit/home/qi/directive/lexeme.hpp | 8
   branches/release/boost/spirit/home/qi/directive/matches.hpp | 8
   branches/release/boost/spirit/home/qi/directive/no_skip.hpp | 8
   branches/release/boost/spirit/home/qi/directive/omit.hpp | 8
   branches/release/boost/spirit/home/qi/directive/raw.hpp | 8
   branches/release/boost/spirit/home/qi/directive/repeat.hpp | 9
   branches/release/boost/spirit/home/qi/directive/skip.hpp | 16
   branches/release/boost/spirit/home/qi/nonterminal/grammar.hpp | 11
   branches/release/boost/spirit/home/qi/nonterminal/rule.hpp | 12
   branches/release/boost/spirit/home/qi/numeric/bool.hpp | 254 ++++++++++++++++++------
   branches/release/boost/spirit/home/qi/numeric/int.hpp | 305 +++++++++++++++++++++++++----
   branches/release/boost/spirit/home/qi/numeric/real.hpp | 262 +++++++++++++++++++++---
   branches/release/boost/spirit/home/qi/numeric/uint.hpp | 364 +++++++++++++++++++++++++++++-----
   branches/release/boost/spirit/home/qi/operator/alternative.hpp | 8
   branches/release/boost/spirit/home/qi/operator/and_predicate.hpp | 8
   branches/release/boost/spirit/home/qi/operator/difference.hpp | 8
   branches/release/boost/spirit/home/qi/operator/expect.hpp | 8
   branches/release/boost/spirit/home/qi/operator/kleene.hpp | 11
   branches/release/boost/spirit/home/qi/operator/list.hpp | 9
   branches/release/boost/spirit/home/qi/operator/not_predicate.hpp | 8
   branches/release/boost/spirit/home/qi/operator/optional.hpp | 8
   branches/release/boost/spirit/home/qi/operator/permutation.hpp | 8
   branches/release/boost/spirit/home/qi/operator/plus.hpp | 11
   branches/release/boost/spirit/home/qi/operator/sequence.hpp | 8
   branches/release/boost/spirit/home/qi/operator/sequence_base.hpp | 4
   branches/release/boost/spirit/home/qi/operator/sequential_or.hpp | 8
   branches/release/boost/spirit/home/qi/reference.hpp | 9
   branches/release/boost/spirit/home/qi/string/lit.hpp | 18
   branches/release/boost/spirit/home/support/attributes_fwd.hpp | 16 +
   branches/release/boost/spirit/home/support/container.hpp | 24 ++
   branches/release/boost/spirit/home/support/handles_container.hpp | 27 +-
   branches/release/boost/spirit/home/support/string_traits.hpp | 87 +++++++-
   branches/release/boost/spirit/home/support/utree/detail/utree_detail2.hpp | 41 +--
   branches/release/boost/spirit/home/support/utree/operators.hpp | 12
   branches/release/boost/spirit/home/support/utree/utree.hpp | 43 ++-
   branches/release/boost/spirit/home/support/utree/utree_traits.hpp | 210 ++++++++++---------
   branches/release/libs/spirit/doc/Jamfile | 27 +
   branches/release/libs/spirit/doc/advanced/customization_points.qbk | 116 +++++++++++
   branches/release/libs/spirit/doc/advanced/indepth.qbk | 35 +-
   branches/release/libs/spirit/doc/html/index.html | 10
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html | 6
   branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html | 16
   branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html | 18
   branches/release/libs/spirit/doc/html/spirit/acknowledgments.html | 4
   branches/release/libs/spirit/doc/html/spirit/advanced.html | 2
   branches/release/libs/spirit/doc/html/spirit/advanced/customize.html | 8
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_container_from_value.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/auto/create_generator.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/auto/create_parser.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/handles_container.html | 340 ++++++++++++++++++++++++++++++++
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/is_container.html | 26 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/begin_container.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/compare_iterators.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/container_iterator.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/deref_iterator.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/end_container.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/next_iterator.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/transform.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html | 97 +++------
   branches/release/libs/spirit/doc/html/spirit/faq.html | 10
   branches/release/libs/spirit/doc/html/spirit/introduction.html | 10
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html | 6
   branches/release/libs/spirit/doc/html/spirit/karma/reference/action.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auto.html | 20
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html | 20
   branches/release/libs/spirit/doc/html/spirit/karma/reference/basics.html | 10
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html | 8
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html | 20
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html | 20
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html | 28 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/columns.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/duplicate.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/create_generator.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/iterator_api.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/stream_api.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/nonterminal.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal/grammar.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal/rule.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html | 28 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html | 28 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html | 48 ++--
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/list.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/stream.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/string.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/reference/string/string.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/string/symbols.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/karma/s05.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_adapted_complex.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html | 10
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/num_list.html | 6
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html | 6
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html | 12
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html | 8
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html | 6
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html | 6
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html | 4
   branches/release/libs/spirit/doc/html/spirit/lex/lexer_introduction.html | 8
   branches/release/libs/spirit/doc/html/spirit/lex/quick_reference/lexer.html | 6
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lex_basics.html | 6
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_api.html | 12
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html | 12
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html | 14
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html | 14
   branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives.html | 4
   branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html | 16
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html | 12
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html | 10
   branches/release/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html | 12
   branches/release/libs/spirit/doc/html/spirit/preface.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html | 6
   branches/release/libs/spirit/doc/html/spirit/qi/reference/action.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auto.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr_cast.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/basics.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char.html | 28 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive.html | 9
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/hold.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/matches.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_skip.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal.html | 10
   branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal/grammar.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal/rule.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html | 205 ++++++++++++++++---
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html | 261 ++++++++++++++++++++----
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html | 235 ++++++++++++++++++---
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html | 302 ++++++++++++++++++++++------
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html | 20
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/list.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html | 20
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/create_parser.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/iterator_api.html | 10
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/stream_api.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/nonterminal.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/stream.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/reference/stream/stream.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string/string.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/qi/s04.html | 9
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html | 24 +-
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html | 8
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html | 10
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html | 6
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html | 12
   branches/release/libs/spirit/doc/html/spirit/support/multi_pass.html | 28 +-
   branches/release/libs/spirit/doc/html/spirit/support/utree.html | 10
   branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_1.html | 6
   branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_2.html | 8
   branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_3.html | 12
   branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4.html | 14
   branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4_1.html | 6
   branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4_2.html | 14
   branches/release/libs/spirit/doc/karma/numeric.qbk | 24 +-
   branches/release/libs/spirit/doc/qi/directive.qbk | 114 ++++++++++
   branches/release/libs/spirit/doc/qi/numeric.qbk | 414 ++++++++++++++++++++++++++++++++++-----
   branches/release/libs/spirit/example/qi/reference.cpp | 103 +++++++++
   branches/release/libs/spirit/test/Jamfile | 348 +++++++++++++++++++--------------
   branches/release/libs/spirit/test/karma/stream.cpp | 42 ---
   branches/release/libs/spirit/test/qi/auto.cpp | 8
   branches/release/libs/spirit/test/qi/int.hpp | 1
   branches/release/libs/spirit/test/qi/int2.cpp | 144 ++++++++-----
   branches/release/libs/spirit/test/qi/real.hpp | 4
   branches/release/libs/spirit/test/qi/real1.cpp | 41 ++-
   branches/release/libs/spirit/test/qi/real2.cpp | 11
   branches/release/libs/spirit/test/qi/real3.cpp | 13
   branches/release/libs/spirit/test/qi/real4.cpp | 26 -
   branches/release/libs/spirit/test/qi/uint.hpp | 22 +
   branches/release/libs/spirit/test/qi/uint1.cpp | 17 -
   branches/release/libs/spirit/test/qi/uint2.cpp | 105 +++++----
   branches/release/libs/spirit/test/qi/utree1.cpp | 47 ++++
   branches/release/tools/bcp/add_path.cpp | 2
   branches/release/tools/bcp/bcp.hpp | 6
   branches/release/tools/bcp/bcp_imp.cpp | 17 -
   branches/release/tools/bcp/copy_path.cpp | 22 +-
   branches/release/tools/bcp/file_types.cpp | 8
   branches/release/tools/bcp/fileview.cpp | 4
   branches/release/tools/bcp/fileview.hpp | 6
   branches/release/tools/bcp/main.cpp | 6
   branches/release/tools/bcp/output_licence_info.cpp | 2
   branches/release/tools/bcp/scan_licence.cpp | 4
   branches/release/tools/inspect/apple_macro_check.cpp | 2
   branches/release/tools/inspect/assert_macro_check.cpp | 2
   branches/release/tools/inspect/build/Jamfile.v2 | 15 +
   branches/release/tools/inspect/cvs_iterator.hpp | 2
   branches/release/tools/inspect/inspect.cpp | 11
   branches/release/tools/inspect/link_check.cpp | 4
   branches/release/tools/inspect/path_name_check.cpp | 2
   308 files changed, 5535 insertions(+), 2783 deletions(-)

Modified: branches/release/boost/detail/container_fwd.hpp
==============================================================================
--- branches/release/boost/detail/container_fwd.hpp (original)
+++ branches/release/boost/detail/container_fwd.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -68,7 +68,11 @@
     template <class charT> struct char_traits;
 #endif
 
- template <class T> class complex;
+ #if BOOST_CLANG
+ template <class T> struct complex;
+ #else
+ template <class T> class complex;
+ #endif
 }
 
 // gcc 3.4 and greater

Modified: branches/release/boost/spirit/home/karma/action/action.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/action/action.hpp (original)
+++ branches/release/boost/spirit/home/karma/action/action.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -127,9 +127,11 @@
       : mpl::true_ {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Action, typename Attribute>
- struct handles_container<karma::action<Subject, Action>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Action, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<karma::action<Subject, Action>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/char/char.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/char/char.hpp (original)
+++ branches/release/boost/spirit/home/karma/char/char.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -262,7 +262,7 @@
             typedef spirit::char_class::convert<char_encoding> convert_type;
 
             char_type const* definition =
- (char_type const*)traits::get_c_string<String>::call(str);
+ (char_type const*)traits::get_c_string(str);
             char_type ch = convert_type::to(Tag(), *definition++);
             while (ch)
             {

Modified: branches/release/boost/spirit/home/karma/detail/as.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/detail/as.hpp (original)
+++ branches/release/boost/spirit/home/karma/detail/as.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -24,7 +24,7 @@
 
     // This is the default case: the plain attribute values
     template <typename T, typename Attribute, typename Enable/*= void*/>
- struct attribute_as_xxx
+ struct attribute_as
     {
         typedef Attribute const& type;
 
@@ -41,10 +41,10 @@
 
     ///////////////////////////////////////////////////////////////////////////
     template <typename T, typename Attribute>
- inline typename spirit::result_of::attribute_as_xxx<T, Attribute>::type
+ inline typename spirit::result_of::attribute_as<T, Attribute>::type
     as(Attribute const& attr)
     {
- return attribute_as_xxx<T, Attribute>::call(attr);
+ return attribute_as<T, Attribute>::call(attr);
     }
 
     template <typename T>
@@ -57,7 +57,7 @@
     template <typename T, typename Attribute>
     inline bool valid_as(Attribute const& attr)
     {
- return attribute_as_xxx<T, Attribute>::is_valid(attr);
+ return attribute_as<T, Attribute>::is_valid(attr);
     }
 
     template <typename T>
@@ -71,18 +71,18 @@
 namespace boost { namespace spirit { namespace result_of
 {
     template <typename T, typename Attribute>
- struct attribute_as_xxx
- : traits::attribute_as_xxx<T, Attribute>
+ struct attribute_as
+ : traits::attribute_as<T, Attribute>
     {};
 
     template <typename T>
- struct attribute_as_xxx<T, unused_type>
+ struct attribute_as<T, unused_type>
     {
         typedef unused_type type;
     };
 
     template <typename T>
- struct attribute_as_xxx<T, unused_type const>
+ struct attribute_as<T, unused_type const>
     {
         typedef unused_type type;
     };

Modified: branches/release/boost/spirit/home/karma/detail/pass_container.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/detail/pass_container.hpp (original)
+++ branches/release/boost/spirit/home/karma/detail/pass_container.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -117,7 +117,8 @@
 
             typedef mpl::and_<
                 traits::is_container<attribute_type>
- , traits::handles_container<Component, Attr> > predicate;
+ , traits::handles_container<Component, Attr, context_type>
+ > predicate;
 
             return dispatch_attribute_element(component, predicate());
         }
@@ -175,7 +176,8 @@
 
             typedef mpl::and_<
                 has_same_elements<rhs, lhs_attribute>
- , traits::handles_container<Component, Attr> > predicate;
+ , traits::handles_container<Component, Attr, context_type>
+ > predicate;
 
             // false means everything went ok
             return dispatch_main(component, predicate());

Modified: branches/release/boost/spirit/home/karma/directive/as.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/as.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/as.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -86,9 +86,9 @@
         {
             if (!traits::valid_as<T>(attr))
                 return false;
- else
- return subject.generate(sink, ctx, d, traits::as<T>(attr)) &&
- karma::delimit_out(sink, d); // always do post-delimiting
+
+ return subject.generate(sink, ctx, d, traits::as<T>(attr)) &&
+ karma::delimit_out(sink, d); // always do post-delimiting
         }
 
         template <typename Context>
@@ -145,8 +145,10 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename T, typename Attribute>
- struct handles_container<karma::as_directive<Subject, T>, Attribute>
+ template <typename Subject, typename T, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<karma::as_directive<Subject, T>, Attribute
+ , Context, Iterator>
       : mpl::false_ {}; // always dereference attribute if used in sequences
 }}}
 

Modified: branches/release/boost/spirit/home/karma/directive/buffer.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/buffer.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/buffer.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -120,9 +120,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::buffer_directive<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::buffer_directive<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/directive/center_alignment.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/center_alignment.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/center_alignment.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -313,15 +313,19 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Width, typename Attribute>
+ template <typename Subject, typename Width, typename Attribute
+ , typename Context, typename Iterator>
     struct handles_container<
- karma::simple_center_alignment<Subject, Width>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ karma::simple_center_alignment<Subject, Width>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 
- template <typename Subject, typename Padding, typename Width, typename Attribute>
+ template <typename Subject, typename Padding, typename Width
+ , typename Attribute, typename Context, typename Iterator>
     struct handles_container<
- karma::padding_center_alignment<Subject, Padding, Width>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ karma::padding_center_alignment<Subject, Padding, Width>
+ , Attribute, Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/directive/columns.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/columns.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/columns.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -273,10 +273,12 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename T1, typename T2, typename Attribute>
+ template <typename Subject, typename T1, typename T2, typename Attribute
+ , typename Context, typename Iterator>
     struct handles_container<
- karma::columns_generator<Subject, T1, T2>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ karma::columns_generator<Subject, T1, T2>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/directive/delimit.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/delimit.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/delimit.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -182,14 +182,17 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::redelimit_generator<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<karma::redelimit_generator<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 
- template <typename Subject, typename Delimiter, typename Attribute>
- struct handles_container<
- karma::delimit_generator<Subject, Delimiter>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Delimiter, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<karma::delimit_generator<Subject, Delimiter>
+ , Attribute, Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/directive/duplicate.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/duplicate.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/duplicate.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -217,9 +217,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::duplicate_directive<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::duplicate_directive<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/directive/left_alignment.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/left_alignment.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/left_alignment.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -296,17 +296,19 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Width, typename Attribute>
+ template <typename Subject, typename Width, typename Attribute
+ , typename Context, typename Iterator>
     struct handles_container<
- karma::simple_left_alignment<Subject, Width>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ karma::simple_left_alignment<Subject, Width>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 
     template <typename Subject, typename Padding, typename Width
- , typename Attribute>
+ , typename Attribute, typename Context, typename Iterator>
     struct handles_container<
             karma::padding_left_alignment<Subject, Padding, Width>
- , Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ , Attribute, Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/directive/maxwidth.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/maxwidth.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/maxwidth.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -232,9 +232,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Width, typename Rest, typename Attribute>
- struct handles_container<karma::maxwidth_width<Subject, Width, Rest>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::maxwidth_width<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/directive/no_delimit.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/no_delimit.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/no_delimit.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -104,9 +104,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::no_delimit_generator<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::no_delimit_generator<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/directive/omit.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/omit.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/omit.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -123,9 +123,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, bool Execute, typename Attribute>
- struct handles_container<karma::omit_directive<Subject, Execute>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, bool Execute, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<karma::omit_directive<Subject, Execute>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/directive/repeat.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/repeat.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/repeat.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -361,14 +361,18 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename LoopIter, typename Attribute>
+ template <typename Subject, typename LoopIter, typename Attribute
+ , typename Context, typename Iterator>
     struct handles_container<
- karma::repeat_generator<Subject, LoopIter>, Attribute>
+ karma::repeat_generator<Subject, LoopIter>, Attribute
+ , Context, Iterator>
       : mpl::true_ {};
 
- template <typename Subject, typename LoopIter, typename Attribute>
+ template <typename Subject, typename LoopIter, typename Attribute
+ , typename Context, typename Iterator>
     struct handles_container<
- karma::strict_repeat_generator<Subject, LoopIter>, Attribute>
+ karma::strict_repeat_generator<Subject, LoopIter>, Attribute
+ , Context, Iterator>
       : mpl::true_ {};
 }}}
 

Modified: branches/release/boost/spirit/home/karma/directive/right_alignment.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/right_alignment.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/right_alignment.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -306,18 +306,20 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Width, typename Attribute>
+ template <typename Subject, typename Width, typename Attribute
+ , typename Context, typename Iterator>
     struct handles_container<
- karma::simple_right_alignment<Subject, Width>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ karma::simple_right_alignment<Subject, Width>
+ , Attribute, Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 
- template <typename Subject, typename Padding, typename Width, typename Attribute>
+ template <typename Subject, typename Padding, typename Width
+ , typename Attribute, typename Context, typename Iterator>
     struct handles_container<
             karma::padding_right_alignment<Subject, Padding, Width>
- , Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ , Attribute, Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif
 
-

Modified: branches/release/boost/spirit/home/karma/directive/verbatim.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/verbatim.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/verbatim.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -102,9 +102,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::verbatim_generator<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::verbatim_generator<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

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 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -118,14 +118,16 @@
 {
     ///////////////////////////////////////////////////////////////////////////
     template <
- typename OutputIterator, typename T1, typename T2, typename T3
- , typename T4, typename Attribute>
+ typename IteratorA, typename IteratorB, typename Attribute
+ , typename Context, typename T1, typename T2, typename T3, typename T4>
     struct handles_container<
- karma::grammar<OutputIterator, T1, T2, T3, T4>, Attribute>
- : detail::nonterminal_handles_container<
+ karma::grammar<IteratorA, T1, T2, T3, T4>, Attribute, Context
+ , IteratorB>
+ : detail::nonterminal_handles_container<
             typename attribute_of<
- karma::grammar<OutputIterator, T1, T2, T3, T4> >::type
- , Attribute>
+ karma::grammar<IteratorA, T1, T2, T3, T4>
+ , Context, IteratorB
+ >::type, Attribute>
     {};
 }}}
 

Modified: branches/release/boost/spirit/home/karma/nonterminal/rule.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/nonterminal/rule.hpp (original)
+++ branches/release/boost/spirit/home/karma/nonterminal/rule.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -400,14 +400,16 @@
 
     ///////////////////////////////////////////////////////////////////////////
     template <
- typename OutputIterator, typename T1, typename T2, typename T3
- , typename T4, typename Attribute>
+ typename IteratorA, typename IteratorB, typename Attribute
+ , typename Context, typename T1, typename T2, typename T3, typename T4>
     struct handles_container<
- karma::rule<OutputIterator, T1, T2, T3, T4>, Attribute>
- : detail::nonterminal_handles_container<
+ karma::rule<IteratorA, T1, T2, T3, T4>, Attribute, Context
+ , IteratorB>
+ : detail::nonterminal_handles_container<
             typename attribute_of<
- karma::rule<OutputIterator, T1, T2, T3, T4> >::type
- , Attribute>
+ karma::rule<IteratorA, T1, T2, T3, T4>
+ , Context, IteratorB
+ >::type, Attribute>
     {};
 }}}
 

Modified: branches/release/boost/spirit/home/karma/numeric/bool.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/numeric/bool.hpp (original)
+++ branches/release/boost/spirit/home/karma/numeric/bool.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -36,8 +36,8 @@
         struct bool_policies;
 
         ///////////////////////////////////////////////////////////////////////
- // This one is the class that the user can instantiate directly in
- // order to create a customized int generator
+ // This is the class that the user can instantiate directly in
+ // order to create a customized bool generator
         template <typename T = bool, typename Policies = bool_policies<T> >
         struct bool_generator
           : spirit::terminal<tag::stateful_tag<Policies, tag::bool_, T> >

Modified: branches/release/boost/spirit/home/karma/numeric/int.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/numeric/int.hpp (original)
+++ branches/release/boost/spirit/home/karma/numeric/int.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -35,7 +35,7 @@
     namespace tag
     {
         template <typename T, unsigned Radix, bool force_sign>
- struct int_tag {};
+ struct int_generator {};
     }
 
     namespace karma
@@ -45,7 +45,7 @@
         // order to create a customized int generator
         template <typename T = int, unsigned Radix = 10, bool force_sign = false>
         struct int_generator
- : spirit::terminal<tag::int_tag<T, Radix, force_sign> >
+ : spirit::terminal<tag::int_generator<T, Radix, force_sign> >
         {};
     }
 
@@ -134,20 +134,21 @@
     ///////////////////////////////////////////////////////////////////////////
     // enables any custom int_generator
     template <typename T, unsigned Radix, bool force_sign>
- struct use_terminal<karma::domain, tag::int_tag<T, Radix, force_sign> >
+ struct use_terminal<karma::domain, tag::int_generator<T, Radix, force_sign> >
       : mpl::true_ {};
 
     // enables any custom int_generator(...)
     template <typename T, unsigned Radix, bool force_sign, typename A0>
     struct use_terminal<karma::domain
- , terminal_ex<tag::int_tag<T, Radix, force_sign>, fusion::vector1<A0> >
+ , terminal_ex<tag::int_generator<T, Radix, force_sign>
+ , fusion::vector1<A0> >
> : mpl::true_ {};
 
     // enables *lazy* custom int_generator
     template <typename T, unsigned Radix, bool force_sign>
     struct use_lazy_terminal<
         karma::domain
- , tag::int_tag<T, Radix, force_sign>
+ , tag::int_generator<T, Radix, force_sign>
       , 1 // arity
> : mpl::true_ {};
 
@@ -364,7 +365,7 @@
 #endif
 
     template <typename T, unsigned Radix, bool force_sign, typename Modifiers>
- struct make_primitive<tag::int_tag<T, Radix, force_sign>, Modifiers>
+ struct make_primitive<tag::int_generator<T, Radix, force_sign>, Modifiers>
       : detail::make_int<T, Modifiers, Radix, force_sign> {};
 
     ///////////////////////////////////////////////////////////////////////////
@@ -421,8 +422,8 @@
     template <typename T, unsigned Radix, bool force_sign, typename A0
       , typename Modifiers>
     struct make_primitive<
- terminal_ex<tag::int_tag<T, Radix, force_sign>, fusion::vector1<A0> >
- , Modifiers>
+ terminal_ex<tag::int_generator<T, Radix, force_sign>
+ , fusion::vector1<A0> >, Modifiers>
       : detail::make_int_direct<T, Modifiers, Radix, force_sign> {};
 
     ///////////////////////////////////////////////////////////////////////////
@@ -454,7 +455,7 @@
 
     template <typename Modifiers>
     struct make_primitive<short, Modifiers>
- : detail::basic_int_literal<int, Modifiers> {};
+ : detail::basic_int_literal<short, Modifiers> {};
 
     template <typename Modifiers>
     struct make_primitive<int, Modifiers>

Modified: branches/release/boost/spirit/home/karma/numeric/real.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/numeric/real.hpp (original)
+++ branches/release/boost/spirit/home/karma/numeric/real.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -40,7 +40,7 @@
         struct real_policies;
 
         ///////////////////////////////////////////////////////////////////////
- // This one is the class that the user can instantiate directly in
+ // This is the class that the user can instantiate directly in
         // order to create a customized real generator
         template <typename T = double, typename Policies = real_policies<T> >
         struct real_generator
@@ -71,7 +71,7 @@
 
     ///////////////////////////////////////////////////////////////////////////
     template <>
- struct use_terminal<karma::domain, float> // enables lit(1.of)
+ struct use_terminal<karma::domain, float> // enables lit(1.0f)
       : mpl::true_ {};
 
     template <>

Modified: branches/release/boost/spirit/home/karma/numeric/uint.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/numeric/uint.hpp (original)
+++ branches/release/boost/spirit/home/karma/numeric/uint.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -37,7 +37,7 @@
     namespace tag
     {
         template <typename T, unsigned Radix>
- struct uint_tag {};
+ struct uint_generator {};
     }
 
     namespace karma
@@ -47,7 +47,7 @@
         // order to create a customized int generator
         template <typename T = unsigned int, unsigned Radix = 10>
         struct uint_generator
- : spirit::terminal<tag::uint_tag<T, Radix> >
+ : spirit::terminal<tag::uint_generator<T, Radix> >
         {};
     }
 
@@ -177,20 +177,20 @@
     ///////////////////////////////////////////////////////////////////////////
     // enables any custom uint_generator
     template <typename T, unsigned Radix>
- struct use_terminal<karma::domain, tag::uint_tag<T, Radix> >
+ struct use_terminal<karma::domain, tag::uint_generator<T, Radix> >
       : mpl::true_ {};
 
     // enables any custom uint_generator(...)
     template <typename T, unsigned Radix, typename A0>
     struct use_terminal<karma::domain
- , terminal_ex<tag::uint_tag<T, Radix>, fusion::vector1<A0> >
+ , terminal_ex<tag::uint_generator<T, Radix>, fusion::vector1<A0> >
> : mpl::true_ {};
 
     // enables *lazy* custom uint_generator
     template <typename T, unsigned Radix>
     struct use_lazy_terminal<
         karma::domain
- , tag::uint_tag<T, Radix>
+ , tag::uint_generator<T, Radix>
       , 1 // arity
> : mpl::true_ {};
 
@@ -407,7 +407,7 @@
 #endif
 
     template <typename T, unsigned Radix, typename Modifiers>
- struct make_primitive<tag::uint_tag<T, Radix>, Modifiers>
+ struct make_primitive<tag::uint_generator<T, Radix>, Modifiers>
       : detail::make_uint<T, Modifiers, Radix> {};
 
     ///////////////////////////////////////////////////////////////////////////
@@ -476,7 +476,7 @@
 
     template <typename T, unsigned Radix, typename A0, typename Modifiers>
     struct make_primitive<
- terminal_ex<tag::uint_tag<T, Radix>, fusion::vector1<A0> >
+ terminal_ex<tag::uint_generator<T, Radix>, fusion::vector1<A0> >
           , Modifiers>
       : detail::make_uint_direct<T, Modifiers, Radix> {};
 

Modified: branches/release/boost/spirit/home/karma/operator/alternative.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/alternative.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator/alternative.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -188,13 +188,17 @@
       : nary_has_semantic_action<Elements> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Elements, typename Attribute>
- struct handles_container<karma::alternative<Elements>, Attribute>
- : nary_handles_container<Elements, Attribute> {};
-
- template <typename Elements, typename Attribute>
- struct handles_container<karma::strict_alternative<Elements>, Attribute>
- : nary_handles_container<Elements, Attribute> {};
+ template <typename Elements, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::alternative<Elements>, Attribute, Context
+ , Iterator>
+ : nary_handles_container<Elements, Attribute, Context, Iterator> {};
+
+ template <typename Elements, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::strict_alternative<Elements>, Attribute
+ , Context, Iterator>
+ : nary_handles_container<Elements, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/operator/and_predicate.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/and_predicate.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator/and_predicate.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -85,9 +85,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::and_predicate<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::and_predicate<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/operator/kleene.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/kleene.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator/kleene.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -167,12 +167,16 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::kleene<Subject>, Attribute>
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::kleene<Subject>, Attribute
+ , Context, Iterator>
       : mpl::true_ {};
 
- template <typename Subject, typename Attribute>
- struct handles_container<karma::strict_kleene<Subject>, Attribute>
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::strict_kleene<Subject>, Attribute
+ , Context, Iterator>
       : mpl::true_ {};
 }}}
 

Modified: branches/release/boost/spirit/home/karma/operator/list.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/list.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator/list.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -200,12 +200,16 @@
       : binary_has_semantic_action<Left, Right> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Left, typename Right, typename Attribute>
- struct handles_container<karma::list<Left, Right>, Attribute>
+ template <typename Left, typename Right, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<karma::list<Left, Right>, Attribute
+ , Context, Iterator>
       : mpl::true_ {};
 
- template <typename Left, typename Right, typename Attribute>
- struct handles_container<karma::strict_list<Left, Right>, Attribute>
+ template <typename Left, typename Right, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<karma::strict_list<Left, Right>, Attribute
+ , Context, Iterator>
       : mpl::true_ {};
 }}}
 

Modified: branches/release/boost/spirit/home/karma/operator/not_predicate.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/not_predicate.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator/not_predicate.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -86,9 +86,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::not_predicate<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::not_predicate<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/operator/optional.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/optional.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator/optional.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -95,9 +95,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::optional<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::optional<Subject>, Attribute, Context
+ , Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/operator/plus.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/plus.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator/plus.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -181,13 +181,17 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::plus<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::plus<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 
- template <typename Subject, typename Attribute>
- struct handles_container<karma::strict_plus<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::strict_plus<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

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 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -149,6 +149,9 @@
             indirect_iterator(Iterator& iter)
               : iter_(&iter)
             {}
+ indirect_iterator(indirect_iterator const& iter)
+ : iter_(iter.iter_)
+ {}
 
         private:
             friend class boost::iterator_core_access;
@@ -178,6 +181,12 @@
             typedef indirect_iterator<Iterator> type;
         };
 
+ template <typename Iterator>
+ struct make_indirect_iterator<indirect_iterator<Iterator> >
+ {
+ typedef indirect_iterator<Iterator> type;
+ };
+
         template <>
         struct make_indirect_iterator<unused_type const*>
         {
@@ -361,6 +370,15 @@
     struct make_composite<proto::tag::shift_left, Elements, Modifiers>
       : detail::make_sequence<Elements, detail::get_stricttag<Modifiers>::value>
     {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Helper template allowing to get the required container type for a rule
+ // attribute, which is part of a sequence.
+ template <typename Iterator>
+ struct make_sequence_iterator_range
+ {
+ typedef iterator_range<detail::indirect_iterator<Iterator> > type;
+ };
 }}}
 
 namespace boost { namespace spirit { namespace traits
@@ -375,15 +393,17 @@
       : nary_has_semantic_action<Elements> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Elements, typename Attribute>
- struct handles_container<karma::sequence<Elements>, Attribute>
- : nary_handles_container<Elements, Attribute>
- {};
-
- template <typename Elements, typename Attribute>
- struct handles_container<karma::strict_sequence<Elements>, Attribute>
- : nary_handles_container<Elements, Attribute>
- {};
+ template <typename Elements, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::sequence<Elements>, Attribute, Context
+ , Iterator>
+ : nary_handles_container<Elements, Attribute, Context, Iterator> {};
+
+ template <typename Elements, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::strict_sequence<Elements>, Attribute
+ , Context, Iterator>
+ : nary_handles_container<Elements, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/reference.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/reference.hpp (original)
+++ branches/release/boost/spirit/home/karma/reference.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -79,9 +79,12 @@
 namespace boost { namespace spirit { namespace traits
 {
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<karma::reference<Subject>, Attribute>
- : handles_container<typename remove_const<Subject>::type, Attribute>
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::reference<Subject>, Attribute
+ , Context, Iterator>
+ : handles_container<typename remove_const<Subject>::type, Attribute
+ , Context, Iterator>
     {};
 }}}
 

Modified: branches/release/boost/spirit/home/karma/string/lit.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/string/lit.hpp (original)
+++ branches/release/boost/spirit/home/karma/string/lit.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -166,9 +166,9 @@
 
             using spirit::traits::get_c_string;
             if (!detail::string_compare(
- get_c_string<extracted_string_type>::call(
+ get_c_string(
                         traits::extract_from<attribute_type>(attr, context))
- , get_c_string<string_type>::call(str_), char_encoding(), Tag()))
+ , get_c_string(str_), char_encoding(), Tag()))
             {
                 return false;
             }
@@ -281,15 +281,17 @@
 namespace boost { namespace spirit { namespace traits
 {
     ///////////////////////////////////////////////////////////////////////////
- template <typename CharEncoding, typename Tag, typename Attribute>
- struct handles_container<karma::any_string<CharEncoding, Tag>, Attribute>
+ template <typename CharEncoding, typename Tag, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<karma::any_string<CharEncoding, Tag>, Attribute
+ , Context, Iterator>
       : mpl::false_ {};
 
     template <typename String, typename CharEncoding, typename Tag
- , bool no_attribute, typename Attribute>
- struct handles_container<
- karma::literal_string<String, CharEncoding, Tag, no_attribute>
- , Attribute>
+ , bool no_attribute, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<karma::literal_string<String, CharEncoding, Tag
+ , no_attribute>, Attribute, Context, Iterator>
       : mpl::false_ {};
 }}}
 

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 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -101,7 +101,7 @@
             typedef typename context_type::state_name_type string;
 
             fusion::at_c<4>(env.args()).set_state_name(
- traits::get_c_string<string>::call(actor_.eval(env)));
+ traits::get_c_string(actor_.eval(env)));
         }
 
         state_setter(Actor const& actor)

Modified: branches/release/boost/spirit/home/lex/qi/state_switcher.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/qi/state_switcher.hpp (original)
+++ branches/release/boost/spirit/home/lex/qi/state_switcher.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -136,7 +136,7 @@
             template <typename State>
             reset_state_on_exit(Iterator& it_, State state_)
               : it(it_)
- , state(detail::set_lexer_state(it_, traits::get_c_string<State>::call(state_)))
+ , state(detail::set_lexer_state(it_, traits::get_c_string(state_)))
             {}
 
             ~reset_state_on_exit()
@@ -184,7 +184,7 @@
         template <typename String>
         state_switcher_context(
                 state_switcher_context<Subject, String> const& rhs)
- : subject(rhs.subject), state(traits::get_c_string<String>::call(rhs.state)) {}
+ : subject(rhs.subject), state(traits::get_c_string(rhs.state)) {}
 
         template <typename Iterator, typename Context
           , typename Skipper, typename Attribute>
@@ -226,7 +226,7 @@
         template <typename Terminal>
         result_type operator()(Terminal const& term, unused_type) const
         {
- return result_type(traits::get_c_string<const_string>::call(fusion::at_c<0>(term.args)));
+ return result_type(traits::get_c_string(fusion::at_c<0>(term.args)));
         }
     };
 

Modified: branches/release/boost/spirit/home/phoenix/detail/type_deduction.hpp
==============================================================================
--- branches/release/boost/spirit/home/phoenix/detail/type_deduction.hpp (original)
+++ branches/release/boost/spirit/home/phoenix/detail/type_deduction.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -242,6 +242,10 @@
         typedef typename C::reference type;
     };
 
+ template <typename T>
+ struct reference_type<T const>
+ : reference_type<T> {};
+
     template <typename T, std::size_t N>
     struct reference_type<T[N]>
     {

Modified: branches/release/boost/spirit/home/qi/action/action.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/action/action.hpp (original)
+++ branches/release/boost/spirit/home/qi/action/action.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -133,9 +133,11 @@
       : mpl::true_ {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Action, typename Attribute>
- struct handles_container<qi::action<Subject, Action>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Action, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<qi::action<Subject, Action>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/auxiliary/lazy.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/auxiliary/lazy.hpp (original)
+++ branches/release/boost/spirit/home/qi/auxiliary/lazy.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -220,4 +220,29 @@
     };
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Actor, typename Modifiers, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<
+ qi::lazy_parser<Actor, Modifiers>, Attribute, Context, Iterator>
+ : handles_container<
+ typename qi::lazy_parser<Actor, Modifiers>::template
+ attribute<Context, Iterator>::parser_type
+ , Attribute, Context, Iterator>
+ {};
+
+ template <typename Subject, typename Actor, typename Modifiers
+ , typename Attribute, typename Context, typename Iterator>
+ struct handles_container<
+ qi::lazy_directive<Actor, Subject, Modifiers>, Attribute
+ , Context, Iterator>
+ : handles_container<
+ typename qi::lazy_directive<Actor, Subject, Modifiers>::template
+ attribute<Context, Iterator>::parser_type
+ , Attribute, Context, Iterator>
+ {};
+}}}
+
 #endif

Modified: branches/release/boost/spirit/home/qi/char/char.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/char/char.hpp (original)
+++ branches/release/boost/spirit/home/qi/char/char.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -277,7 +277,7 @@
             ), cannot_convert_string, (String));
 
             in_type const* definition =
- (in_type const*)traits::get_c_string<String>::call(str);
+ (in_type const*)traits::get_c_string(str);
             in_type ch = *definition++;
             while (ch)
             {
@@ -337,7 +337,7 @@
             ), cannot_convert_string, (String));
 
             char_type const* definition =
- (char_type const*)traits::get_c_string<String>::call(str);
+ (char_type const*)traits::get_c_string(str);
             char_type ch = *definition++;
             while (ch)
             {

Modified: branches/release/boost/spirit/home/qi/detail/attributes.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/detail/attributes.hpp (original)
+++ branches/release/boost/spirit/home/qi/detail/attributes.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -76,18 +76,18 @@
     {};
 
     template <typename Exposed, typename Transformed>
- struct transform_attribute<boost::optional<Exposed>, Transformed
- , typename disable_if<is_same<boost::optional<Exposed>, Transformed> >::type>
+ struct transform_attribute<optional<Exposed>, Transformed
+ , typename disable_if<is_same<optional<Exposed>, Transformed> >::type>
     {
         typedef Transformed& type;
- static Transformed& pre(boost::optional<Exposed>& val)
+ static Transformed& pre(optional<Exposed>& val)
         {
             if (!val)
                 val = Transformed();
             return boost::get<Transformed>(val);
         }
- static void post(boost::optional<Exposed>&, Transformed const&) {}
- static void fail(boost::optional<Exposed>& val)
+ static void post(optional<Exposed>&, Transformed const&) {}
+ static void fail(optional<Exposed>& val)
         {
              val = none_t(); // leave optional uninitialized if rhs failed
         }

Modified: branches/release/boost/spirit/home/qi/detail/pass_container.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/detail/pass_container.hpp (original)
+++ branches/release/boost/spirit/home/qi/detail/pass_container.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -105,7 +105,8 @@
 
             typedef mpl::and_<
                 traits::is_container<attribute_type>
- , traits::handles_container<Component, Attr>
+ , traits::handles_container<Component, Attr, context_type
+ , iterator_type>
> predicate;
 
             return dispatch_attribute_element(component, predicate());
@@ -158,7 +159,8 @@
 
             typedef mpl::and_<
                 has_same_elements<lhs, rhs_attribute>
- , traits::handles_container<Component, Attr>
+ , traits::handles_container<Component, Attr, context_type
+ , iterator_type>
> predicate;
 
             return dispatch_main(component, predicate());
@@ -182,3 +184,4 @@
 }}}}
 
 #endif
+

Modified: branches/release/boost/spirit/home/qi/directive/as.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/directive/as.hpp (original)
+++ branches/release/boost/spirit/home/qi/directive/as.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -81,7 +81,6 @@
         bool parse(Iterator& first, Iterator const& last
           , Context& context, Skipper const& skipper, Attribute& attr) const
         {
- qi::skip_over(first, last, skipper);
             Iterator i = first;
             T as_attr;
             if (subject.parse(i, last, context, skipper, as_attr))
@@ -147,9 +146,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename T, typename Attribute>
- struct handles_container<qi::as_directive<Subject, T>, Attribute>
- : mpl::false_ {}; // always dereference attribute if used in sequences
+ template <typename Subject, typename T, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<qi::as_directive<Subject, T>, Attribute
+ , Context, Iterator>
+ : mpl::false_ {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/directive/hold.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/directive/hold.hpp (original)
+++ branches/release/boost/spirit/home/qi/directive/hold.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -97,9 +97,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::hold_directive<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::hold_directive<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/directive/lexeme.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/directive/lexeme.hpp (original)
+++ branches/release/boost/spirit/home/qi/directive/lexeme.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -94,9 +94,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::lexeme_directive<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::lexeme_directive<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/directive/matches.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/directive/matches.hpp (original)
+++ branches/release/boost/spirit/home/qi/directive/matches.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -96,9 +96,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::matches_directive<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::matches_directive<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/directive/no_skip.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/directive/no_skip.hpp (original)
+++ branches/release/boost/spirit/home/qi/directive/no_skip.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -96,9 +96,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::no_skip_directive<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::no_skip_directive<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

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 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -95,9 +95,11 @@
       : mpl::false_ {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::omit_directive<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::omit_directive<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/directive/raw.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/directive/raw.hpp (original)
+++ branches/release/boost/spirit/home/qi/directive/raw.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -99,9 +99,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::raw_directive<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::raw_directive<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/directive/repeat.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/directive/repeat.hpp (original)
+++ branches/release/boost/spirit/home/qi/directive/repeat.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -218,6 +218,9 @@
             value_type val = value_type();
             typename LoopIter::type i = iter.start();
 
+ // ensure the attribute is actually a container type
+ traits::make_container(attr);
+
             // parse the minimum required
             Iterator save = first;
             if (!iter.got_min(i) &&
@@ -328,8 +331,10 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename LoopIter, typename Attribute>
- struct handles_container<qi::repeat_parser<Subject, LoopIter>, Attribute>
+ template <typename Subject, typename LoopIter, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<qi::repeat_parser<Subject, LoopIter>
+ , Attribute, Context, Iterator>
       : mpl::true_ {};
 }}}
 

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 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -172,13 +172,17 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::reskip_parser<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::reskip_parser<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 
- template <typename Subject, typename Skipper, typename Attribute>
- struct handles_container<qi::skip_parser<Subject, Skipper>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Skipper, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<qi::skip_parser<Subject, Skipper>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

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 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -117,11 +117,14 @@
 {
     ///////////////////////////////////////////////////////////////////////////
     template <
- typename Iterator, typename T1, typename T2, typename T3
- , typename T4, typename Attribute>
- struct handles_container<qi::grammar<Iterator, T1, T2, T3, T4>, Attribute>
+ typename IteratorA, typename IteratorB, typename Attribute
+ , typename Context, typename T1, typename T2, typename T3, typename T4>
+ struct handles_container<
+ qi::grammar<IteratorA, T1, T2, T3, T4>, Attribute, Context, IteratorB>
       : traits::is_container<
- typename attribute_of<qi::grammar<Iterator, T1, T2, T3, T4> >::type
+ typename attribute_of<
+ qi::grammar<IteratorA, T1, T2, T3, T4>, Context, IteratorB
+ >::type
>
     {};
 }}}

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 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -394,11 +394,15 @@
 {
     ///////////////////////////////////////////////////////////////////////////
     template <
- typename Iterator, typename T1, typename T2, typename T3
- , typename T4, typename Attribute>
- struct handles_container<qi::rule<Iterator, T1, T2, T3, T4>, Attribute>
+ typename IteratorA, typename IteratorB, typename Attribute
+ , typename Context, typename T1, typename T2, typename T3, typename T4>
+ struct handles_container<
+ qi::rule<IteratorA, T1, T2, T3, T4>, Attribute, Context, IteratorB>
       : traits::is_container<
- typename attribute_of<qi::rule<Iterator, T1, T2, T3, T4> >::type>
+ typename attribute_of<
+ qi::rule<IteratorA, T1, T2, T3, T4>, Context, IteratorB
+ >::type
+ >
     {};
 }}}
 

Modified: branches/release/boost/spirit/home/qi/numeric/bool.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/numeric/bool.hpp (original)
+++ branches/release/boost/spirit/home/qi/numeric/bool.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,5 +1,6 @@
 /*=============================================================================
- Copyright (c) 2001-2010 Hartmut Kaiser
+ Copyright (c) 2001-2011 Hartmut Kaiser
+ Copyright (c) 2011 Bryce Lelbach
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -16,26 +17,84 @@
 #include <boost/spirit/home/qi/parser.hpp>
 #include <boost/spirit/home/qi/numeric/bool_policies.hpp>
 #include <boost/spirit/home/support/common_terminals.hpp>
-#include <boost/spirit/home/support/info.hpp>
 #include <boost/mpl/assert.hpp>
 #include <boost/detail/workaround.hpp>
 
 namespace boost { namespace spirit
 {
+ namespace qi
+ {
+ ///////////////////////////////////////////////////////////////////////
+ // forward declaration only
+ template <typename T>
+ struct bool_policies;
+
+ ///////////////////////////////////////////////////////////////////////
+ // This is the class that the user can instantiate directly in
+ // order to create a customized bool parser
+ template <typename T, typename BoolPolicies = bool_policies<T> >
+ struct bool_parser
+ : spirit::terminal<tag::stateful_tag<BoolPolicies, tag::bool_, T> >
+ {
+ typedef tag::stateful_tag<BoolPolicies, tag::bool_, T> tag_type;
+
+ bool_parser() {}
+ bool_parser(BoolPolicies const& data)
+ : spirit::terminal<tag_type>(data) {}
+ };
+ }
+
     ///////////////////////////////////////////////////////////////////////////
     // Enablers
     ///////////////////////////////////////////////////////////////////////////
- template <>
- struct use_terminal<qi::domain, tag::bool_> // enables bool_
+ template <> // enables bool_
+ struct use_terminal<qi::domain, tag::bool_>
+ : mpl::true_ {};
+
+ template <> // enables true_
+ struct use_terminal<qi::domain, tag::true_>
+ : mpl::true_ {};
+
+ template <> // enables false_
+ struct use_terminal<qi::domain, tag::false_>
+ : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <> // enables lit(true)
+ struct use_terminal<qi::domain, bool>
+ : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename A0> // enables bool_(...)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::bool_, fusion::vector1<A0> >
+ > : mpl::true_ {};
+
+ template <> // enables *lazy* bool_(...)
+ struct use_lazy_terminal<qi::domain, tag::bool_, 1>
       : mpl::true_ {};
 
- template <>
- struct use_terminal<qi::domain, tag::true_> // enables true_
+ ///////////////////////////////////////////////////////////////////////////
+ // enables any custom bool_parser
+ template <typename T, typename BoolPolicies>
+ struct use_terminal<qi::domain
+ , tag::stateful_tag<BoolPolicies, tag::bool_, T> >
       : mpl::true_ {};
 
- template <>
- struct use_terminal<qi::domain, tag::false_> // enables false_
+ // enables any custom bool_parser(...)
+ template <typename T, typename BoolPolicies, typename A0>
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::stateful_tag<BoolPolicies, tag::bool_, T>
+ , fusion::vector1<A0> > >
       : mpl::true_ {};
+
+ // enables *lazy* custom bool_parser(...)
+ template <typename T, typename BoolPolicies>
+ struct use_lazy_terminal<
+ qi::domain
+ , tag::stateful_tag<BoolPolicies, tag::bool_, T>
+ , 1 // arity
+ > : mpl::true_ {};
 }}
 
 namespace boost { namespace spirit { namespace qi
@@ -46,15 +105,17 @@
     using spirit::true__type;
     using spirit::false_;
     using spirit::false__type;
+
+ using spirit::lit; // lit(true) is equivalent to true
 
     namespace detail
     {
- template <typename T, typename Policies>
+ template <typename T, typename BoolPolicies>
         struct bool_impl
         {
             template <typename Iterator, typename Attribute>
             static bool parse(Iterator& first, Iterator const& last
- , Attribute& attr, Policies const& p, bool allow_true = true
+ , Attribute& attr, BoolPolicies const& p, bool allow_true = true
               , bool disallow_false = false)
             {
                 if (first == last)
@@ -72,11 +133,9 @@
     ///////////////////////////////////////////////////////////////////////////
     // This actual boolean parser
     ///////////////////////////////////////////////////////////////////////////
- template <
- typename T = bool
- , typename Policies = bool_policies<T> >
- struct bool_parser_impl
- : primitive_parser<bool_parser_impl<T, Policies> >
+ template <typename T, typename BoolPolicies = bool_policies<T> >
+ struct any_bool_parser
+ : primitive_parser<any_bool_parser<T, BoolPolicies> >
     {
         template <typename Context, typename Iterator>
         struct attribute
@@ -90,9 +149,9 @@
           , Context& /*context*/, Skipper const& skipper
           , Attribute& attr) const
         {
+ typedef detail::bool_impl<T, BoolPolicies> extract;
             qi::skip_over(first, last, skipper);
- return detail::bool_impl<T, Policies>::
- parse(first, last, attr, Policies());
+ return extract::parse(first, last, attr, BoolPolicies());
         }
 
         template <typename Context>
@@ -102,21 +161,18 @@
         }
     };
 
- template <
- typename T = bool
- , typename Policies = bool_policies<T> >
- struct bool_parser_literal_impl
- : primitive_parser<bool_parser_literal_impl<T, Policies> >
+ template <typename T, typename BoolPolicies = bool_policies<T>
+ , bool no_attribute = true>
+ struct literal_bool_parser
+ : primitive_parser<literal_bool_parser<T, BoolPolicies, no_attribute> >
     {
+ template <typename Value>
+ literal_bool_parser(Value const& n) : n_(n) {}
+
         template <typename Context, typename Iterator>
         struct attribute
- {
- typedef T type;
- };
-
- bool_parser_literal_impl(typename add_const<T>::type n)
- : n_(n)
- {}
+ : mpl::if_c<no_attribute, unused_type, T>
+ {};
 
         template <typename Iterator, typename Context
           , typename Skipper, typename Attribute>
@@ -124,9 +180,9 @@
           , Context& /*context*/, Skipper const& skipper
           , Attribute& attr) const
         {
+ typedef detail::bool_impl<T, BoolPolicies> extract;
             qi::skip_over(first, last, skipper);
- return detail::bool_impl<T, Policies>::
- parse(first, last, attr, Policies(), n_, n_);
+ return extract::parse(first, last, attr, BoolPolicies(), n_, n_);
         }
 
         template <typename Context>
@@ -139,27 +195,22 @@
     };
 
     ///////////////////////////////////////////////////////////////////////////
- // bool_parser is the class that the user can instantiate directly
- ///////////////////////////////////////////////////////////////////////////
- template <
- typename T
- , typename Policies = bool_policies<T> >
- struct bool_parser
- : proto::terminal<bool_parser_impl<T, Policies> >::type
- {};
-
- ///////////////////////////////////////////////////////////////////////////
     // Parser generators: make_xxx function (objects)
     ///////////////////////////////////////////////////////////////////////////
- template <typename Modifiers>
- struct make_primitive<tag::bool_, Modifiers>
+ template <typename T, typename Modifiers
+ , typename Policies = bool_policies<T> >
+ struct make_bool
     {
- typedef has_modifier<Modifiers, tag::char_code_base<tag::no_case> > no_case;
+ typedef has_modifier<Modifiers, tag::char_code_base<tag::no_case> >
+ no_case;
 
         typedef typename mpl::if_<
- no_case
- , bool_parser_impl<bool, no_case_bool_policies<> >
- , bool_parser_impl<> >::type
+ mpl::and_<
+ no_case
+ , is_same<bool_policies<T>, Policies>
+ >
+ , any_bool_parser<T, no_case_bool_policies<T> >
+ , any_bool_parser<T, Policies> >::type
         result_type;
 
         result_type operator()(unused_type, unused_type) const
@@ -167,37 +218,114 @@
             return result_type();
         }
     };
+
+ template <typename T, typename Modifiers
+ , typename Policies = bool_policies<T> >
+ struct make_direct_bool
+ {
+ typedef has_modifier<Modifiers, tag::char_code_base<tag::no_case> >
+ no_case;
 
- namespace detail
+ typedef typename mpl::if_<
+ mpl::and_<
+ no_case
+ , is_same<bool_policies<T>, Policies>
+ >
+ , literal_bool_parser<T, no_case_bool_policies<T>, false>
+ , literal_bool_parser<T, Policies, false> >::type
+ result_type;
+
+ template <typename Terminal>
+ result_type operator()(Terminal const& term, unused_type) const
+ {
+ return result_type(fusion::at_c<0>(term.args));
+ }
+ };
+
+ template <typename T, typename Modifiers, bool b
+ , typename Policies = bool_policies<T> >
+ struct make_predefined_direct_bool
     {
- template <typename Modifiers, bool b>
- struct make_literal_bool
+ typedef has_modifier<Modifiers, tag::char_code_base<tag::no_case> >
+ no_case;
+
+ typedef typename mpl::if_<
+ mpl::and_<
+ no_case
+ , is_same<bool_policies<T>, Policies>
+ >
+ , literal_bool_parser<T, no_case_bool_policies<T>, false>
+ , literal_bool_parser<T, Policies, false> >::type
+ result_type;
+
+ result_type operator()(unused_type, unused_type) const
         {
- typedef has_modifier<Modifiers, tag::char_code_base<tag::no_case> > no_case;
+ return result_type(b);
+ }
+ };
+
+
+ template <typename T, typename Modifiers
+ , typename Policies = bool_policies<T> >
+ struct make_literal_bool
+ {
+ typedef has_modifier<Modifiers, tag::char_code_base<tag::no_case> >
+ no_case;
 
- typedef typename mpl::if_<
+ typedef typename mpl::if_<
+ mpl::and_<
                 no_case
- , bool_parser_literal_impl<bool, no_case_bool_policies<> >
- , bool_parser_literal_impl<> >::type
- result_type;
+ , is_same<bool_policies<T>, Policies>
+ >
+ , literal_bool_parser<T, no_case_bool_policies<T> >
+ , literal_bool_parser<T, Policies> >::type
+ result_type;
 
- result_type operator()(unused_type, unused_type) const
- {
- return result_type(b);
- }
- };
- }
+ template <typename T_>
+ result_type operator()(T_ i, unused_type) const
+ {
+ return result_type(i);
+ }
+ };
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Modifiers>
+ struct make_primitive<bool, Modifiers>
+ : make_literal_bool<bool, Modifiers> {};
 
+ ///////////////////////////////////////////////////////////////////////////
     template <typename Modifiers>
     struct make_primitive<tag::false_, Modifiers>
- : detail::make_literal_bool<Modifiers, false>
+ : make_predefined_direct_bool<bool, Modifiers, false>
     {};
 
     template <typename Modifiers>
     struct make_primitive<tag::true_, Modifiers>
- : detail::make_literal_bool<Modifiers, true>
+ : make_predefined_direct_bool<bool, Modifiers, true>
     {};
 
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename T, typename Policies, typename Modifiers>
+ struct make_primitive<
+ tag::stateful_tag<Policies, tag::bool_, T>, Modifiers>
+ : make_bool<T, Modifiers, Policies> {};
+
+ template <typename T, typename Policies, typename A0, typename Modifiers>
+ struct make_primitive<
+ terminal_ex<tag::stateful_tag<Policies, tag::bool_, T>
+ , fusion::vector1<A0> >, Modifiers>
+ : make_direct_bool<T, Modifiers, Policies> {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Modifiers>
+ struct make_primitive<tag::bool_, Modifiers>
+ : make_bool<bool, Modifiers> {};
+
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::bool_
+ , fusion::vector1<A0> >, Modifiers>
+ : make_direct_bool<bool, Modifiers> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/numeric/int.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/numeric/int.hpp (original)
+++ branches/release/boost/spirit/home/qi/numeric/int.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,5 +1,6 @@
 /*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2011 Bryce Lelbach
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -21,34 +22,119 @@
 
 namespace boost { namespace spirit
 {
+ namespace tag
+ {
+ template <typename T, unsigned Radix, unsigned MinDigits
+ , int MaxDigits>
+ struct int_parser {};
+ }
+
+ namespace qi
+ {
+ ///////////////////////////////////////////////////////////////////////
+ // This one is the class that the user can instantiate directly in
+ // order to create a customized int parser
+ template <typename T = int, unsigned Radix = 10, unsigned MinDigits = 1
+ , int MaxDigits = -1>
+ struct int_parser
+ : spirit::terminal<tag::int_parser<T, Radix, MinDigits, MaxDigits> >
+ {};
+ }
+
     ///////////////////////////////////////////////////////////////////////////
     // Enablers
     ///////////////////////////////////////////////////////////////////////////
- //[primitive_parsers_enable_short_
- template <>
- struct use_terminal<qi::domain, tag::short_> // enables short_
- : mpl::true_ {};
+ //[primitive_parsers_enable_short
+ template <> // enables short_
+ struct use_terminal<qi::domain, tag::short_> : mpl::true_ {};
     //]
 
- //[primitive_parsers_enable_int_
- template <>
- struct use_terminal<qi::domain, tag::int_> // enables int_
- : mpl::true_ {};
- //]
+ template <> // enables lit(short(n))
+ struct use_terminal<qi::domain, short> : mpl::true_ {};
 
- //[primitive_parsers_enable_long_
- template <>
- struct use_terminal<qi::domain, tag::long_> // enables long_
- : mpl::true_ {};
- //]
+ template <typename A0> // enables short_(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::short_, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
 
+ template <> // enables *lazy* short_(n)
+ struct use_lazy_terminal<qi::domain, tag::short_, 1> : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ //[primitive_parsers_enable_int
+ template <> // enables int_
+ struct use_terminal<qi::domain, tag::int_> : mpl::true_ {};
+ //]
+
+ template <> // enables lit(int(n))
+ struct use_terminal<qi::domain, int> : mpl::true_ {};
+
+ template <typename A0> // enables int_(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::int_, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
+
+ template <> // enables *lazy* int_(n)
+ struct use_lazy_terminal<qi::domain, tag::int_, 1> : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ //[primitive_parsers_enable_long
+ template <> // enables long_
+ struct use_terminal<qi::domain, tag::long_> : mpl::true_ {};
+ //]
+
+ template <> // enables lit(long(n))
+ struct use_terminal<qi::domain, long> : mpl::true_ {};
+
+ template <typename A0> // enables long_(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::long_, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
+
+ template <> // enables *lazy* long_(n)
+ struct use_lazy_terminal<qi::domain, tag::long_, 1> : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
 #ifdef BOOST_HAS_LONG_LONG
- //[primitive_parsers_enable_long_long_
- template <>
- struct use_terminal<qi::domain, tag::long_long> // enables long_long
- : mpl::true_ {};
+ //[primitive_parsers_enable_long_long
+ template <> // enables long_long
+ struct use_terminal<qi::domain, tag::long_long> : mpl::true_ {};
     //]
+
+ template <> // enables lit(boost::long_long_type(n))
+ struct use_terminal<qi::domain, boost::long_long_type> : mpl::true_ {};
+
+ template <typename A0> // enables long_long(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::long_long, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
+
+ template <> // enables *lazy* long_long(n)
+ struct use_lazy_terminal<qi::domain, tag::long_long, 1> : mpl::true_ {};
 #endif
+
+ ///////////////////////////////////////////////////////////////////////////
+ // enables any custom int_parser
+ template <typename T, unsigned Radix, unsigned MinDigits
+ , int MaxDigits>
+ struct use_terminal<qi::domain
+ , tag::int_parser<T, Radix, MinDigits, MaxDigits> >
+ : mpl::true_ {};
+
+ // enables any custom int_parser(n)
+ template <typename T, unsigned Radix, unsigned MinDigits
+ , int MaxDigits, typename A0>
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::int_parser<T, Radix, MinDigits, MaxDigits>
+ , fusion::vector1<A0> >
+ > : mpl::true_ {};
+
+ // enables *lazy* custom int_parser(n)
+ template <typename T, unsigned Radix, unsigned MinDigits
+ , int MaxDigits>
+ struct use_lazy_terminal<qi::domain
+ , tag::int_parser<T, Radix, MinDigits, MaxDigits>, 1
+ > : mpl::true_ {};
 }}
 
 namespace boost { namespace spirit { namespace qi
@@ -64,17 +150,19 @@
     using spirit::long_long_type;
 #endif
 
+ using spirit::lit; // lit(1) is equivalent to 1
+
     ///////////////////////////////////////////////////////////////////////////
     // This is the actual int parser
     ///////////////////////////////////////////////////////////////////////////
- //[primitive_parsers_int
+ //[primitive_parsers_int_parser
     template <
         typename T
       , unsigned Radix = 10
       , unsigned MinDigits = 1
       , int MaxDigits = -1>
- struct int_parser_impl
- : primitive_parser<int_parser_impl<T, Radix, MinDigits, MaxDigits> >
+ struct any_int_parser
+ : primitive_parser<any_int_parser<T, Radix, MinDigits, MaxDigits> >
     {
         // check template parameter 'Radix' for validity
         BOOST_SPIRIT_ASSERT_MSG(
@@ -93,9 +181,9 @@
           , Context& /*context*/, Skipper const& skipper
           , Attribute& attr) const
         {
+ typedef extract_int<T, Radix, MinDigits, MaxDigits> extract;
             qi::skip_over(first, last, skipper);
- return extract_int<T, Radix, MinDigits, MaxDigits>
- ::call(first, last, attr);
+ return extract::call(first, last, attr);
         }
 
         template <typename Context>
@@ -106,57 +194,184 @@
     };
     //]
 
- ///////////////////////////////////////////////////////////////////////////
- // This one is the class that the user can instantiate directly
- ///////////////////////////////////////////////////////////////////////////
- template <
- typename T
- , unsigned Radix = 10
- , unsigned MinDigits = 1
- , int MaxDigits = -1>
- struct int_parser
- : proto::terminal<int_parser_impl<T, Radix, MinDigits, MaxDigits> >::type
+ template <typename T, unsigned Radix = 10, unsigned MinDigits = 1
+ , int MaxDigits = -1, bool no_attribute = true>
+ struct literal_int_parser
+ : primitive_parser<literal_int_parser<T, Radix, MinDigits, MaxDigits
+ , no_attribute> >
     {
+ // check template parameter 'Radix' for validity
+ BOOST_SPIRIT_ASSERT_MSG(
+ Radix == 2 || Radix == 8 || Radix == 10 || Radix == 16,
+ not_supported_radix, ());
+
+ template <typename Value>
+ literal_int_parser(Value const& n) : n_(n) {}
+
+ template <typename Context, typename Iterator>
+ struct attribute
+ : mpl::if_c<no_attribute, unused_type, T>
+ {};
+
+ template <typename Iterator, typename Context
+ , typename Skipper, typename Attribute>
+ bool parse(Iterator& first, Iterator const& last
+ , Context& /*context*/, Skipper const& skipper
+ , Attribute& attr) const
+ {
+ typedef extract_int<T, Radix, MinDigits, MaxDigits> extract;
+ qi::skip_over(first, last, skipper);
+
+ T attr_;
+
+ if (extract::call(first, last, attr_) && (attr_ == n_))
+ {
+ traits::assign_to(attr_, attr);
+ return true;
+ }
+
+ return false;
+ }
+
+ template <typename Context>
+ info what(Context& /*context*/) const
+ {
+ return info("integer");
+ }
+
+ T n_;
     };
 
     ///////////////////////////////////////////////////////////////////////////
     // Parser generators: make_xxx function (objects)
     ///////////////////////////////////////////////////////////////////////////
     //[primitive_parsers_make_int
- template <typename T>
+ template <
+ typename T
+ , unsigned Radix = 10
+ , unsigned MinDigits = 1
+ , int MaxDigits = -1>
     struct make_int
     {
- typedef int_parser_impl<T> result_type;
+ typedef any_int_parser<T, Radix, MinDigits, MaxDigits> result_type;
         result_type operator()(unused_type, unused_type) const
         {
             return result_type();
         }
     };
     //]
+
+ template <typename T, unsigned Radix = 10, unsigned MinDigits = 1
+ , int MaxDigits = -1>
+ struct make_direct_int
+ {
+ typedef literal_int_parser<T, Radix, MinDigits, MaxDigits, false>
+ result_type;
+ template <typename Terminal>
+ result_type operator()(Terminal const& term, unused_type) const
+ {
+ return result_type(fusion::at_c<0>(term.args));
+ }
+ };
+
+ template <typename T, unsigned Radix = 10, unsigned MinDigits = 1
+ , int MaxDigits = -1>
+ struct make_literal_int
+ {
+ typedef literal_int_parser<T, Radix, MinDigits, MaxDigits> result_type;
+ template <typename T_>
+ result_type operator()(T_ i, unused_type) const
+ {
+ return result_type(i);
+ }
+ };
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Modifiers>
+ struct make_primitive<short, Modifiers>
+ : make_literal_int<short> {};
 
- //[primitive_parsers_short_
     template <typename Modifiers>
- struct make_primitive<tag::short_, Modifiers> : make_int<short> {};
+ struct make_primitive<int, Modifiers>
+ : make_literal_int<int> {};
+
+ template <typename Modifiers>
+ struct make_primitive<long, Modifiers>
+ : make_literal_int<long> {};
+
+#ifdef BOOST_HAS_LONG_LONG
+ template <typename Modifiers>
+ struct make_primitive<boost::long_long_type, Modifiers>
+ : make_literal_int<boost::long_long_type> {};
+#endif
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename T, unsigned Radix, unsigned MinDigits, int MaxDigits
+ , typename Modifiers>
+ struct make_primitive<
+ tag::int_parser<T, Radix, MinDigits, MaxDigits>
+ , Modifiers>
+ : make_int<T, Radix, MinDigits, MaxDigits> {};
+
+ template <typename T, unsigned Radix, unsigned MinDigits, int MaxDigits
+ , typename A0, typename Modifiers>
+ struct make_primitive<
+ terminal_ex<tag::int_parser<T, Radix, MinDigits, MaxDigits>
+ , fusion::vector1<A0> >, Modifiers>
+ : make_direct_int<T, Radix, MinDigits, MaxDigits> {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ //[primitive_parsers_short_primitive
+ template <typename Modifiers>
+ struct make_primitive<tag::short_, Modifiers>
+ : make_int<short> {};
     //]
 
- //[primitive_parsers_int_
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::short_
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_int<short> {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ //[primitive_parsers_int_primitive
     template <typename Modifiers>
- struct make_primitive<tag::int_, Modifiers> : make_int<int> {};
+ struct make_primitive<tag::int_, Modifiers>
+ : make_int<int> {};
     //]
 
- //[primitive_parsers_long_
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::int_
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_int<int> {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ //[primitive_parsers_long_primitive
     template <typename Modifiers>
- struct make_primitive<tag::long_, Modifiers> : make_int<long> {};
+ struct make_primitive<tag::long_, Modifiers>
+ : make_int<long> {};
     //]
 
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::long_
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_int<long> {};
+
+ ///////////////////////////////////////////////////////////////////////////
 #ifdef BOOST_HAS_LONG_LONG
- //[primitive_parsers_long_long_
+ //[primitive_parsers_long_long_primitive
     template <typename Modifiers>
- struct make_primitive<tag::long_long, Modifiers>
+ struct make_primitive<tag::long_long, Modifiers>
       : make_int<boost::long_long_type> {};
     //]
-#endif
 
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::long_long
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_int<boost::long_long_type> {};
+#endif
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/numeric/real.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/numeric/real.hpp (original)
+++ branches/release/boost/spirit/home/qi/numeric/real.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,5 +1,6 @@
 /*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2011 Bryce Lelbach
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -12,29 +13,114 @@
 #endif
 
 #include <boost/spirit/home/qi/skip_over.hpp>
+#include <boost/spirit/home/qi/meta_compiler.hpp>
+#include <boost/spirit/home/qi/parser.hpp>
 #include <boost/spirit/home/qi/numeric/real_policies.hpp>
 #include <boost/spirit/home/qi/numeric/numeric_utils.hpp>
 #include <boost/spirit/home/qi/numeric/detail/real_impl.hpp>
-#include <boost/spirit/home/qi/meta_compiler.hpp>
-#include <boost/spirit/home/qi/parser.hpp>
 #include <boost/spirit/home/support/common_terminals.hpp>
 
 namespace boost { namespace spirit
 {
+ namespace qi
+ {
+ ///////////////////////////////////////////////////////////////////////
+ // forward declaration only
+ template <typename T>
+ struct real_policies;
+
+ ///////////////////////////////////////////////////////////////////////
+ // This is the class that the user can instantiate directly in
+ // order to create a customized real parser
+ template <typename T = double, typename Policies = real_policies<T> >
+ struct real_parser
+ : spirit::terminal<tag::stateful_tag<Policies, tag::double_, T> >
+ {
+ typedef tag::stateful_tag<Policies, tag::double_, T> tag_type;
+
+ real_parser() {}
+ real_parser(Policies const& p)
+ : spirit::terminal<tag_type>(p) {}
+ };
+ }
+
     ///////////////////////////////////////////////////////////////////////////
     // Enablers
     ///////////////////////////////////////////////////////////////////////////
- template <>
- struct use_terminal<qi::domain, tag::float_> // enables float_
+ template <> // enables float_
+ struct use_terminal<qi::domain, tag::float_>
+ : mpl::true_ {};
+
+ template <> // enables double_
+ struct use_terminal<qi::domain, tag::double_>
+ : mpl::true_ {};
+
+ template <> // enables long_double
+ struct use_terminal<qi::domain, tag::long_double>
+ : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <> // enables lit(0.f)
+ struct use_terminal<qi::domain, float>
+ : mpl::true_ {};
+
+ template <> // enables lit(0.)
+ struct use_terminal<qi::domain, double>
+ : mpl::true_ {};
+
+ template <> // enables lit(0.l)
+ struct use_terminal<qi::domain, long double>
+ : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename A0> // enables float_(...)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::float_, fusion::vector1<A0> >
+ > : mpl::true_ {};
+
+ template <typename A0> // enables double_(...)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::double_, fusion::vector1<A0> >
+ > : mpl::true_ {};
+
+ template <typename A0> // enables long_double(...)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::long_double, fusion::vector1<A0> >
+ > : mpl::true_ {};
+
+ template <> // enables *lazy* float_(...)
+ struct use_lazy_terminal<qi::domain, tag::float_, 1>
+ : mpl::true_ {};
+
+ template <> // enables *lazy* double_(...)
+ struct use_lazy_terminal<qi::domain, tag::double_, 1>
       : mpl::true_ {};
 
- template <>
- struct use_terminal<qi::domain, tag::double_> // enables double_
+ template <> // enables *lazy* double_(...)
+ struct use_lazy_terminal<qi::domain, tag::long_double, 1>
       : mpl::true_ {};
 
- template <>
- struct use_terminal<qi::domain, tag::long_double> // enables long_double
+ ///////////////////////////////////////////////////////////////////////////
+ // enables custom real_parser
+ template <typename T, typename Policies>
+ struct use_terminal<qi::domain
+ , tag::stateful_tag<Policies, tag::double_, T> >
       : mpl::true_ {};
+
+ // enables custom real_parser(...)
+ template <typename T, typename Policies, typename A0>
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::stateful_tag<Policies, tag::double_, T>
+ , fusion::vector1<A0> > >
+ : mpl::true_ {};
+
+ // enables *lazy* custom real_parser(...)
+ template <typename T, typename Policies>
+ struct use_lazy_terminal<
+ qi::domain
+ , tag::stateful_tag<Policies, tag::double_, T>
+ , 1 // arity
+ > : mpl::true_ {};
 }}
 
 namespace boost { namespace spirit { namespace qi
@@ -46,15 +132,14 @@
     using spirit::long_double;
     using spirit::long_double_type;
 
+ using spirit::lit; // lit(1.0) is equivalent to 1.0
+
     ///////////////////////////////////////////////////////////////////////////
     // This is the actual real number parser
     ///////////////////////////////////////////////////////////////////////////
- template <
- typename T = double,
- typename RealPolicies = real_policies<T>
- >
- struct real_parser_impl
- : primitive_parser<real_parser_impl<T, RealPolicies> >
+ template <typename T, typename RealPolicies = real_policies<T> >
+ struct any_real_parser
+ : primitive_parser<any_real_parser<T, RealPolicies> >
     {
         template <typename Context, typename Iterator>
         struct attribute
@@ -67,22 +152,22 @@
           , Context& /*context*/, Skipper const& skipper
           , T& attr) const
         {
+ typedef detail::real_impl<T, RealPolicies> extract;
             qi::skip_over(first, last, skipper);
- return detail::real_impl<T, RealPolicies>::
- parse(first, last, attr, RealPolicies());
+ return extract::parse(first, last, attr, RealPolicies());
         }
 
         template <typename Iterator, typename Context
           , typename Skipper, typename Attribute>
         bool parse(Iterator& first, Iterator const& last
           , Context& context, Skipper const& skipper
- , Attribute& attr_) const
+ , Attribute& attr) const
         {
             // this case is called when Attribute is not T
- T attr;
- if (parse(first, last, context, skipper, attr))
+ T attr_;
+ if (parse(first, last, context, skipper, attr_))
             {
- traits::assign_to(attr, attr_);
+ traits::assign_to(attr_, attr);
                 return true;
             }
             return false;
@@ -91,43 +176,148 @@
         template <typename Context>
         info what(Context& /*context*/) const
         {
- return info("real-number");
+ return info("real");
         }
     };
 
- ///////////////////////////////////////////////////////////////////////////
- // This one is the class that the user can instantiate directly
- ///////////////////////////////////////////////////////////////////////////
- template <
- typename T,
- typename RealPolicies = real_policies<T>
- >
- struct real_parser
- : proto::terminal<real_parser_impl<T, RealPolicies> >::type
+ template <typename T, typename RealPolicies = real_policies<T>
+ , bool no_attribute = true>
+ struct literal_real_parser
+ : primitive_parser<literal_real_parser<T, RealPolicies, no_attribute> >
     {
+ template <typename Value>
+ literal_real_parser(Value const& n) : n_(n) {}
+
+ template <typename Context, typename Iterator>
+ struct attribute
+ : mpl::if_c<no_attribute, unused_type, T>
+ {};
+
+ template <typename Iterator, typename Context
+ , typename Skipper, typename Attribute>
+ bool parse(Iterator& first, Iterator const& last
+ , Context& context, Skipper const& skipper
+ , Attribute& attr) const
+ {
+ typedef detail::real_impl<T, RealPolicies> extract;
+ qi::skip_over(first, last, skipper);
+
+ T attr_;
+
+ if (extract::parse(first, last, attr_, RealPolicies()) &&
+ (attr_ == n_))
+ {
+ traits::assign_to(attr_, attr);
+ return true;
+ }
+
+ return false;
+ }
+
+ template <typename Context>
+ info what(Context& /*context*/) const
+ {
+ return info("real");
+ }
+
+ T n_;
     };
 
     ///////////////////////////////////////////////////////////////////////////
     // Parser generators: make_xxx function (objects)
     ///////////////////////////////////////////////////////////////////////////
- template <typename T>
+ template <typename T, typename Policies = real_policies<T> >
     struct make_real
     {
- typedef real_parser_impl<T, real_policies<T> > result_type;
+ typedef any_real_parser<T, Policies> result_type;
+
         result_type operator()(unused_type, unused_type) const
         {
             return result_type();
         }
     };
 
+ template <typename T, typename Policies = real_policies<T> >
+ struct make_direct_real
+ {
+ typedef literal_real_parser<T, Policies, false> result_type;
+
+ template <typename Terminal>
+ result_type operator()(Terminal const& term, unused_type) const
+ {
+ return result_type(T(fusion::at_c<0>(term.args)));
+ }
+ };
+
+ template <typename T, typename Policies = real_policies<T> >
+ struct make_literal_real
+ {
+ typedef literal_real_parser<T, Policies> result_type;
+
+ template <typename T_>
+ result_type operator()(T_ i, unused_type) const
+ {
+ return result_type(T(i));
+ }
+ };
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Modifiers>
+ struct make_primitive<float, Modifiers>
+ : make_literal_real<float> {};
+
     template <typename Modifiers>
- struct make_primitive<tag::float_, Modifiers> : make_real<float> {};
+ struct make_primitive<double, Modifiers>
+ : make_literal_real<double> {};
 
     template <typename Modifiers>
- struct make_primitive<tag::double_, Modifiers> : make_real<double> {};
+ struct make_primitive<long double, Modifiers>
+ : make_literal_real<long double> {};
 
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename T, typename Policies, typename Modifiers>
+ struct make_primitive<
+ tag::stateful_tag<Policies, tag::double_, T>, Modifiers>
+ : make_real<T, Policies> {};
+
+ template <typename T, typename Policies, typename A0, typename Modifiers>
+ struct make_primitive<
+ terminal_ex<tag::stateful_tag<Policies, tag::double_, T>
+ , fusion::vector1<A0> >, Modifiers>
+ : make_direct_real<T, Policies> {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Modifiers>
+ struct make_primitive<tag::float_, Modifiers>
+ : make_real<float> {};
+
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::float_
+ , fusion::vector1<A0> >, Modifiers>
+ : make_direct_real<float> {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Modifiers>
+ struct make_primitive<tag::double_, Modifiers>
+ : make_real<double> {};
+
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::double_
+ , fusion::vector1<A0> >, Modifiers>
+ : make_direct_real<double> {};
+
+ ///////////////////////////////////////////////////////////////////////////
     template <typename Modifiers>
- struct make_primitive<tag::long_double, Modifiers> : make_real<long double> {};
+ struct make_primitive<tag::long_double, Modifiers>
+ : make_real<long double> {};
+
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::long_double
+ , fusion::vector1<A0> >, Modifiers>
+ : make_direct_real<long double> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/numeric/uint.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/numeric/uint.hpp (original)
+++ branches/release/boost/spirit/home/qi/numeric/uint.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,5 +1,6 @@
 /*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2011 Bryce Lelbach
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -21,69 +22,174 @@
 
 namespace boost { namespace spirit
 {
+ namespace tag
+ {
+ template <typename T, unsigned Radix, unsigned MinDigits
+ , int MaxDigits>
+ struct uint_parser {};
+ }
+
+ namespace qi
+ {
+ ///////////////////////////////////////////////////////////////////////
+ // This one is the class that the user can instantiate directly in
+ // order to create a customized int parser
+ template <typename T = int, unsigned Radix = 10, unsigned MinDigits = 1
+ , int MaxDigits = -1>
+ struct uint_parser
+ : spirit::terminal<tag::uint_parser<T, Radix, MinDigits, MaxDigits> >
+ {};
+ }
+
     ///////////////////////////////////////////////////////////////////////////
     // Enablers
     ///////////////////////////////////////////////////////////////////////////
- template <>
- struct use_terminal<qi::domain, tag::bin> // enables bin
- : mpl::true_ {};
+ template <> // enables ushort_
+ struct use_terminal<qi::domain, tag::ushort_> : mpl::true_ {};
 
- template <>
- struct use_terminal<qi::domain, tag::oct> // enables oct
- : mpl::true_ {};
+ template <> // enables lit(unsigned short(n))
+ struct use_terminal<qi::domain, unsigned short> : mpl::true_ {};
 
- template <>
- struct use_terminal<qi::domain, tag::hex> // enables hex
- : mpl::true_ {};
+ template <typename A0> // enables ushort_(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::ushort_, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
 
- template <>
- struct use_terminal<qi::domain, tag::ushort_> // enables ushort_
- : mpl::true_ {};
+ template <> // enables *lazy* ushort_(n)
+ struct use_lazy_terminal<qi::domain, tag::ushort_, 1> : mpl::true_ {};
 
- template <>
- struct use_terminal<qi::domain, tag::ulong_> // enables ulong_
- : mpl::true_ {};
+ ///////////////////////////////////////////////////////////////////////////
+ template <> // enables uint_
+ struct use_terminal<qi::domain, tag::uint_> : mpl::true_ {};
 
- template <>
- struct use_terminal<qi::domain, tag::uint_> // enables uint_
- : mpl::true_ {};
+ template <> // enables lit(unsigned(n))
+ struct use_terminal<qi::domain, unsigned> : mpl::true_ {};
 
+ template <typename A0> // enables uint_(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::uint_, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
+
+ template <> // enables *lazy* uint_(n)
+ struct use_lazy_terminal<qi::domain, tag::uint_, 1> : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <> // enables ulong_
+ struct use_terminal<qi::domain, tag::ulong_> : mpl::true_ {};
+
+ template <> // enables lit(unsigned long(n))
+ struct use_terminal<qi::domain, unsigned long> : mpl::true_ {};
+
+ template <typename A0> // enables ulong_(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::ulong_, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
+
+ template <> // enables *lazy* ulong_(n)
+ struct use_lazy_terminal<qi::domain, tag::ulong_, 1> : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
 #ifdef BOOST_HAS_LONG_LONG
- template <>
- struct use_terminal<qi::domain, tag::ulong_long> // enables ulong_long
- : mpl::true_ {};
+ template <> // enables ulong_long
+ struct use_terminal<qi::domain, tag::ulong_long> : mpl::true_ {};
+
+ template <> // enables lit(boost::ulong_long_type(n))
+ struct use_terminal<qi::domain, boost::ulong_long_type> : mpl::true_ {};
+
+ template <typename A0> // enables ulong_long(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::ulong_long, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
+
+ template <> // enables *lazy* ulong_long(n)
+ struct use_lazy_terminal<qi::domain, tag::ulong_long, 1> : mpl::true_ {};
 #endif
+ ///////////////////////////////////////////////////////////////////////////
+ template <> // enables bin
+ struct use_terminal<qi::domain, tag::bin> : mpl::true_ {};
+
+ template <typename A0> // enables bin(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::bin, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
+
+ template <> // enables *lazy* bin(n)
+ struct use_lazy_terminal<qi::domain, tag::bin, 1> : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <> // enables oct
+ struct use_terminal<qi::domain, tag::oct> : mpl::true_ {};
+
+ template <typename A0> // enables oct(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::oct, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
+
+ template <> // enables *lazy* oct(n)
+ struct use_lazy_terminal<qi::domain, tag::oct, 1> : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <> // enables hex
+ struct use_terminal<qi::domain, tag::hex> : mpl::true_ {};
+
+ template <typename A0> // enables hex(n)
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::hex, fusion::vector1<A0> > >
+ : is_arithmetic<A0> {};
+
+ template <> // enables *lazy* hex(n)
+ struct use_lazy_terminal<qi::domain, tag::hex, 1> : mpl::true_ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ // enables any custom uint_parser
+ template <typename T, unsigned Radix, unsigned MinDigits
+ , int MaxDigits>
+ struct use_terminal<qi::domain
+ , tag::uint_parser<T, Radix, MinDigits, MaxDigits> >
+ : mpl::true_ {};
+
+ // enables any custom uint_parser(n)
+ template <typename T, unsigned Radix, unsigned MinDigits
+ , int MaxDigits, typename A0>
+ struct use_terminal<qi::domain
+ , terminal_ex<tag::uint_parser<T, Radix, MinDigits, MaxDigits>
+ , fusion::vector1<A0> >
+ > : mpl::true_ {};
+
+ // enables *lazy* custom uint_parser(n)
+ template <typename T, unsigned Radix, unsigned MinDigits
+ , int MaxDigits>
+ struct use_lazy_terminal<qi::domain
+ , tag::uint_parser<T, Radix, MinDigits, MaxDigits>, 1
+ > : mpl::true_ {};
 }}
 
 namespace boost { namespace spirit { namespace qi
 {
     using spirit::bin;
- using spirit::bin_type;
     using spirit::oct;
- using spirit::oct_type;
     using spirit::hex;
- using spirit::hex_type;
+
     using spirit::ushort_;
     using spirit::ushort__type;
- using spirit::ulong_;
- using spirit::ulong__type;
     using spirit::uint_;
     using spirit::uint__type;
+ using spirit::ulong_;
+ using spirit::ulong__type;
 #ifdef BOOST_HAS_LONG_LONG
     using spirit::ulong_long;
     using spirit::ulong_long_type;
 #endif
 
+ using spirit::lit; // lit(1) is equivalent to 1
+
     ///////////////////////////////////////////////////////////////////////////
- // This actual unsigned int parser
+ // This is the actual uint parser
     ///////////////////////////////////////////////////////////////////////////
- template <
- typename T
- , unsigned Radix = 10
- , unsigned MinDigits = 1
- , int MaxDigits = -1>
- struct uint_parser_impl
- : primitive_parser<uint_parser_impl<T, Radix, MinDigits, MaxDigits> >
+ template <typename T, unsigned Radix = 10, unsigned MinDigits = 1
+ , int MaxDigits = -1>
+ struct any_uint_parser
+ : primitive_parser<any_uint_parser<T, Radix, MinDigits, MaxDigits> >
     {
         // check template parameter 'Radix' for validity
         BOOST_SPIRIT_ASSERT_MSG(
@@ -102,9 +208,9 @@
           , Context& /*context*/, Skipper const& skipper
           , Attribute& attr) const
         {
+ typedef extract_uint<T, Radix, MinDigits, MaxDigits> extract;
             qi::skip_over(first, last, skipper);
- return extract_uint<T, Radix, MinDigits, MaxDigits>
- ::call(first, last, attr);
+ return extract::call(first, last, attr);
         }
 
         template <typename Context>
@@ -113,65 +219,205 @@
             return info("unsigned-integer");
         }
     };
+ //]
 
- ///////////////////////////////////////////////////////////////////////////
- // uint_parser is the class that the user can instantiate directly
- ///////////////////////////////////////////////////////////////////////////
- template <
- typename T
- , unsigned Radix = 10
- , unsigned MinDigits = 1
- , int MaxDigits = -1>
- struct uint_parser
- : proto::terminal<uint_parser_impl<T, Radix, MinDigits, MaxDigits> >::type
+ template <typename T, unsigned Radix = 10, unsigned MinDigits = 1
+ , int MaxDigits = -1, bool no_attribute = true>
+ struct literal_uint_parser
+ : primitive_parser<literal_uint_parser<T, Radix, MinDigits, MaxDigits
+ , no_attribute> >
     {
+ // check template parameter 'Radix' for validity
+ BOOST_SPIRIT_ASSERT_MSG(
+ Radix == 2 || Radix == 8 || Radix == 10 || Radix == 16,
+ not_supported_radix, ());
+
+ template <typename Value>
+ literal_uint_parser(Value const& n) : n_(n) {}
+
+ template <typename Context, typename Iterator>
+ struct attribute
+ : mpl::if_c<no_attribute, unused_type, T>
+ {};
+
+ template <typename Iterator, typename Context
+ , typename Skipper, typename Attribute>
+ bool parse(Iterator& first, Iterator const& last
+ , Context& /*context*/, Skipper const& skipper
+ , Attribute& attr) const
+ {
+ typedef extract_uint<T, Radix, MinDigits, MaxDigits> extract;
+ qi::skip_over(first, last, skipper);
+
+ T attr_;
+
+ if (extract::call(first, last, attr_) && (attr_ == n_))
+ {
+ traits::assign_to(attr_, attr);
+ return true;
+ }
+
+ return false;
+ }
+
+ template <typename Context>
+ info what(Context& /*context*/) const
+ {
+ return info("unsigned-integer");
+ }
+
+ T n_;
     };
 
     ///////////////////////////////////////////////////////////////////////////
     // Parser generators: make_xxx function (objects)
     ///////////////////////////////////////////////////////////////////////////
- template <
- typename T
- , unsigned Radix = 10
- , unsigned MinDigits = 1
- , int MaxDigits = -1>
+ template <typename T, unsigned Radix = 10, unsigned MinDigits = 1
+ , int MaxDigits = -1>
     struct make_uint
     {
- typedef uint_parser_impl<T, Radix, MinDigits, MaxDigits> result_type;
+ typedef any_uint_parser<T, Radix, MinDigits, MaxDigits> result_type;
         result_type operator()(unused_type, unused_type) const
         {
             return result_type();
         }
     };
+
+ template <typename T, unsigned Radix = 10, unsigned MinDigits = 1
+ , int MaxDigits = -1>
+ struct make_direct_uint
+ {
+ typedef literal_uint_parser<T, Radix, MinDigits, MaxDigits, false>
+ result_type;
+ template <typename Terminal>
+ result_type operator()(Terminal const& term, unused_type) const
+ {
+ return result_type(fusion::at_c<0>(term.args));
+ }
+ };
+
+ template <typename T, unsigned Radix = 10, unsigned MinDigits = 1
+ , int MaxDigits = -1>
+ struct make_literal_uint
+ {
+ typedef literal_uint_parser<T, Radix, MinDigits, MaxDigits> result_type;
+ template <typename T_>
+ result_type operator()(T_ i, unused_type) const
+ {
+ return result_type(i);
+ }
+ };
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Modifiers>
+ struct make_primitive<unsigned short, Modifiers>
+ : make_literal_uint<unsigned short> {};
+
+ template <typename Modifiers>
+ struct make_primitive<unsigned, Modifiers>
+ : make_literal_uint<unsigned> {};
+
+ template <typename Modifiers>
+ struct make_primitive<unsigned long, Modifiers>
+ : make_literal_uint<unsigned long> {};
+
+#ifdef BOOST_HAS_LONG_LONG
+ template <typename Modifiers>
+ struct make_primitive<boost::ulong_long_type, Modifiers>
+ : make_literal_uint<boost::ulong_long_type> {};
+#endif
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename T, unsigned Radix, unsigned MinDigits, int MaxDigits
+ , typename Modifiers>
+ struct make_primitive<
+ tag::uint_parser<T, Radix, MinDigits, MaxDigits>
+ , Modifiers>
+ : make_uint<T, Radix, MinDigits, MaxDigits> {};
+
+ template <typename T, unsigned Radix, unsigned MinDigits, int MaxDigits
+ , typename A0, typename Modifiers>
+ struct make_primitive<
+ terminal_ex<tag::uint_parser<T, Radix, MinDigits, MaxDigits>
+ , fusion::vector1<A0> >, Modifiers>
+ : make_direct_uint<T, Radix, MinDigits, MaxDigits> {};
 
+ ///////////////////////////////////////////////////////////////////////////
     template <typename Modifiers>
     struct make_primitive<tag::bin, Modifiers>
- : make_uint<unsigned, 2, 1, -1> {};
+ : make_uint<unsigned, 2> {};
+
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::bin
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_uint<unsigned, 2> {};
 
+ ///////////////////////////////////////////////////////////////////////////
     template <typename Modifiers>
     struct make_primitive<tag::oct, Modifiers>
- : make_uint<unsigned, 8, 1, -1> {};
+ : make_uint<unsigned, 8> {};
 
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::oct
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_uint<unsigned, 8> {};
+
+ ///////////////////////////////////////////////////////////////////////////
     template <typename Modifiers>
     struct make_primitive<tag::hex, Modifiers>
- : make_uint<unsigned, 16, 1, -1> {};
+ : make_uint<unsigned, 16> {};
+
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::hex
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_uint<unsigned, 16> {};
 
+ ///////////////////////////////////////////////////////////////////////////
     template <typename Modifiers>
     struct make_primitive<tag::ushort_, Modifiers>
       : make_uint<unsigned short> {};
 
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::ushort_
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_uint<unsigned short> {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Modifiers>
+ struct make_primitive<tag::uint_, Modifiers>
+ : make_uint<unsigned> {};
+
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::uint_
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_uint<unsigned> {};
+
+ ///////////////////////////////////////////////////////////////////////////
     template <typename Modifiers>
     struct make_primitive<tag::ulong_, Modifiers>
       : make_uint<unsigned long> {};
 
- template <typename Modifiers>
- struct make_primitive<tag::uint_, Modifiers>
- : make_uint<unsigned int> {};
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::ulong_
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_uint<unsigned long> {};
 
+ ///////////////////////////////////////////////////////////////////////////
 #ifdef BOOST_HAS_LONG_LONG
     template <typename Modifiers>
     struct make_primitive<tag::ulong_long, Modifiers>
       : make_uint<boost::ulong_long_type> {};
+
+ template <typename Modifiers, typename A0>
+ struct make_primitive<
+ terminal_ex<tag::ulong_long
+ , fusion::vector1<A0> > , Modifiers>
+ : make_direct_uint<boost::ulong_long_type> {};
 #endif
 }}}
 

Modified: branches/release/boost/spirit/home/qi/operator/alternative.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/alternative.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/alternative.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -107,9 +107,11 @@
       : nary_has_semantic_action<Elements> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Elements, typename Attribute>
- struct handles_container<qi::alternative<Elements>, Attribute>
- : nary_handles_container<Elements, Attribute> {};
+ template <typename Elements, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::alternative<Elements>, Attribute, Context
+ , Iterator>
+ : nary_handles_container<Elements, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/operator/and_predicate.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/and_predicate.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/and_predicate.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -82,9 +82,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::and_predicate<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::and_predicate<Subject>, Attribute, Context
+ , Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/operator/difference.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/difference.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/difference.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -102,9 +102,11 @@
       : binary_has_semantic_action<Left, Right> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Left, typename Right, typename Attribute>
- struct handles_container<qi::difference<Left, Right>, Attribute>
- : binary_handles_container<Left, Right, Attribute> {};
+ template <typename Left, typename Right, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<qi::difference<Left, Right>, Attribute, Context
+ , Iterator>
+ : binary_handles_container<Left, Right, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/operator/expect.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/expect.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/expect.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -92,9 +92,11 @@
       : nary_has_semantic_action<Elements> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Elements, typename Attribute>
- struct handles_container<qi::expect<Elements>, Attribute>
- : nary_handles_container<Elements, Attribute> {};
+ template <typename Elements, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::expect<Elements>, Attribute, Context
+ , Iterator>
+ : nary_handles_container<Elements, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/operator/kleene.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/kleene.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/kleene.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -68,6 +68,9 @@
                 value_type;
             value_type val = value_type();
 
+ // ensure the attribute is actually a container type
+ traits::make_container(attr);
+
             // Repeat while subject parses ok
             Iterator save = first;
             while (subject.parse(save, last, context, skipper, val) &&
@@ -116,9 +119,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::kleene<Subject>, Attribute>
- : mpl::true_ {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::kleene<Subject>, Attribute
+ , Context, Iterator>
+ : mpl::true_ {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/operator/list.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/list.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/list.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -66,6 +66,9 @@
                 value_type;
             value_type val = value_type();
 
+ // ensure the attribute is actually a container type
+ traits::make_container(attr);
+
             Iterator save = first;
             if (!left.parse(save, last, context, skipper, val) ||
                 !traits::push_back(attr, val))
@@ -113,8 +116,10 @@
       : binary_has_semantic_action<Left, Right> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Left, typename Right, typename Attribute>
- struct handles_container<qi::list<Left, Right>, Attribute>
+ template <typename Left, typename Right, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<qi::list<Left, Right>, Attribute, Context
+ , Iterator>
       : mpl::true_ {};
 }}}
 

Modified: branches/release/boost/spirit/home/qi/operator/not_predicate.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/not_predicate.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/not_predicate.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -81,9 +81,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::not_predicate<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::not_predicate<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/operator/optional.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/optional.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/optional.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -99,9 +99,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::optional<Subject>, Attribute>
- : unary_handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::optional<Subject>, Attribute
+ , Context, Iterator>
+ : unary_handles_container<Subject, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/operator/permutation.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/permutation.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/permutation.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -135,9 +135,11 @@
       : nary_has_semantic_action<Elements> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Elements, typename Attribute>
- struct handles_container<qi::permutation<Elements>, Attribute>
- : nary_handles_container<Elements, Attribute> {};
+ template <typename Elements, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::permutation<Elements>, Attribute, Context
+ , Iterator>
+ : nary_handles_container<Elements, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/operator/plus.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/plus.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/plus.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -64,6 +64,9 @@
                 value_type;
             value_type val = value_type();
 
+ // ensure the attribute is actually a container type
+ traits::make_container(attr);
+
             Iterator save = first;
             if (!subject.parse(save, last, context, skipper, val) ||
                 !traits::push_back(attr, val))
@@ -110,9 +113,11 @@
       : unary_has_semantic_action<Subject> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::plus<Subject>, Attribute>
- : mpl::true_ {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::plus<Subject>, Attribute, Context
+ , Iterator>
+ : mpl::true_ {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/operator/sequence.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/sequence.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/sequence.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -85,9 +85,11 @@
       : nary_has_semantic_action<Elements> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Elements, typename Attribute>
- struct handles_container<qi::sequence<Elements>, Attribute>
- : nary_handles_container<Elements, Attribute> {};
+ template <typename Elements, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::sequence<Elements>, Attribute, Context
+ , Iterator>
+ : nary_handles_container<Elements, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/operator/sequence_base.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/sequence_base.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/sequence_base.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -20,7 +20,6 @@
 #include <boost/spirit/home/support/info.hpp>
 #include <boost/spirit/home/support/sequence_base_id.hpp>
 #include <boost/spirit/home/support/has_semantic_action.hpp>
-#include <boost/spirit/home/support/handles_container.hpp>
 #include <boost/spirit/home/qi/parser.hpp>
 #include <boost/fusion/include/as_vector.hpp>
 #include <boost/fusion/include/vector.hpp>
@@ -97,6 +96,9 @@
           , Context& context, Skipper const& skipper
           , Attribute& attr_, mpl::true_) const
         {
+ // ensure the attribute is actually a container type
+ traits::make_container(attr_);
+
             Iterator iter = first;
             // return false if *any* of the parsers fail
             if (fusion::any(elements

Modified: branches/release/boost/spirit/home/qi/operator/sequential_or.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/operator/sequential_or.hpp (original)
+++ branches/release/boost/spirit/home/qi/operator/sequential_or.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -115,9 +115,11 @@
       : nary_has_semantic_action<Elements> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Elements, typename Attribute>
- struct handles_container<qi::sequential_or<Elements>, Attribute>
- : nary_handles_container<Elements, Attribute> {};
+ template <typename Elements, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::sequential_or<Elements>, Attribute, Context
+ , Iterator>
+ : nary_handles_container<Elements, Attribute, Context, Iterator> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/reference.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/reference.hpp (original)
+++ branches/release/boost/spirit/home/qi/reference.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -57,9 +57,12 @@
 namespace boost { namespace spirit { namespace traits
 {
     ///////////////////////////////////////////////////////////////////////////
- template <typename Subject, typename Attribute>
- struct handles_container<qi::reference<Subject>, Attribute>
- : handles_container<typename remove_const<Subject>::type, Attribute>
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct handles_container<qi::reference<Subject>, Attribute, Context
+ , Iterator>
+ : handles_container<typename remove_const<Subject>::type
+ , Attribute, Context, Iterator>
     {};
 }}}
 

Modified: branches/release/boost/spirit/home/qi/string/lit.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/string/lit.hpp (original)
+++ branches/release/boost/spirit/home/qi/string/lit.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -199,7 +199,7 @@
         {
             typename spirit::detail::get_encoding<Modifiers,
                 spirit::char_encoding::standard>::type encoding;
- return result_type(traits::get_c_string<String>::call(str), encoding);
+ return result_type(traits::get_c_string(str), encoding);
         }
     };
 
@@ -235,7 +235,7 @@
         template <typename String>
         result_type op(String const& str, mpl::true_) const
         {
- return result_type(traits::get_c_string<String>::call(str), encoding());
+ return result_type(traits::get_c_string(str), encoding());
         }
     };
 }}}
@@ -243,14 +243,16 @@
 namespace boost { namespace spirit { namespace traits
 {
     ///////////////////////////////////////////////////////////////////////////
- template <typename String, bool no_attribute, typename Attribute>
- struct handles_container<
- qi::literal_string<String, no_attribute>, Attribute>
+ template <typename String, bool no_attribute, typename Attribute
+ ,typename Context, typename Iterator>
+ struct handles_container<qi::literal_string<String, no_attribute>
+ , Attribute, Context, Iterator>
       : mpl::true_ {};
 
- template <typename String, bool no_attribute, typename Attribute>
- struct handles_container<
- qi::no_case_literal_string<String, no_attribute>, Attribute>
+ template <typename String, bool no_attribute, typename Attribute
+ , typename Context, typename Iterator>
+ struct handles_container<qi::no_case_literal_string<String, no_attribute>
+ , Attribute, Context, Iterator>
       : mpl::true_ {};
 }}}
 

Modified: branches/release/boost/spirit/home/support/attributes_fwd.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/attributes_fwd.hpp (original)
+++ branches/release/boost/spirit/home/support/attributes_fwd.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -28,7 +28,7 @@
     struct extract_from;
 
     template <typename T, typename Attribute>
- struct attribute_as_xxx;
+ struct attribute_as;
 
     template <typename Exposed, typename Transformed, typename Domain>
     struct pre_transform;
@@ -128,10 +128,10 @@
     ///////////////////////////////////////////////////////////////////////////
     // Karma only
     template <typename T, typename Attribute, typename Enable = void>
- struct attribute_as_xxx;
+ struct attribute_as;
 
     template <typename T, typename Attribute>
- typename spirit::result_of::attribute_as_xxx<T, Attribute>::type
+ typename spirit::result_of::attribute_as<T, Attribute>::type
     as(Attribute const& attr);
     
     template <typename T, typename Attribute>
@@ -143,6 +143,9 @@
     template <typename T, typename Enable = void>
     struct variant_which;
 
+ template <typename T>
+ int which(T const& v);
+
     ///////////////////////////////////////////////////////////////////////////
     // Determine, whether T is a variant like type
     ///////////////////////////////////////////////////////////////////////////
@@ -168,8 +171,8 @@
     struct is_container;
 
     ///////////////////////////////////////////////////////////////////////////
- // Karma only
- template <typename T, typename Attribute, typename Enable = void>
+ template <typename T, typename Attribute, typename Context = unused_type
+ , typename Iterator = unused_type, typename Enable = void>
     struct handles_container;
 
     ///////////////////////////////////////////////////////////////////////////
@@ -180,6 +183,9 @@
     template <typename Container, typename Enable = void>
     struct is_empty_container;
 
+ template <typename Container, typename Enable = void>
+ struct make_container_attribute;
+
     ///////////////////////////////////////////////////////////////////////
     // Determine the iterator type of the given container type
     // Karma only

Modified: branches/release/boost/spirit/home/support/container.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/container.hpp (original)
+++ branches/release/boost/spirit/home/support/container.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -349,13 +349,33 @@
         return is_empty_container<Container>::call(c);
     }
 
- template <typename T>
- bool is_empty(unused_type)
+ inline bool is_empty(unused_type)
     {
         return true;
     }
 
     ///////////////////////////////////////////////////////////////////////////
+ // Ensure the attribute is actually a container type
+ template <typename Container, typename Enable/* = void*/>
+ struct make_container_attribute
+ {
+ static void call(Container& c)
+ {
+ // for static types this function does nothing
+ }
+ };
+
+ template <typename T>
+ void make_container(T& t)
+ {
+ make_container_attribute<T>::call(t);
+ }
+
+ inline void make_container(unused_type)
+ {
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
     template <typename Container, typename Enable/* = void*/>
     struct begin_container
     {

Modified: branches/release/boost/spirit/home/support/handles_container.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/handles_container.hpp (original)
+++ branches/release/boost/spirit/home/support/handles_container.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -20,28 +20,33 @@
 
 namespace boost { namespace spirit { namespace traits
 {
- // Finding out, whether a component handles container attributes
- // intrinsically (or whether container attributes need to be split up
- // separately). This customization point is used by karma sequences.
- template <typename T, typename Attribute, typename Enable>
+ // Finds out whether a component handles container attributes intrinsically
+ // (or whether container attributes need to be split up separately).
+ template <typename T, typename Attribute, typename Context
+ , typename Iterator, typename Enable>
     struct handles_container : mpl::false_ {};
 
- template <typename Subject, typename Attribute>
- struct unary_handles_container : handles_container<Subject, Attribute> {};
+ template <typename Subject, typename Attribute, typename Context
+ , typename Iterator>
+ struct unary_handles_container
+ : handles_container<Subject, Attribute, Context, Iterator> {};
 
- template <typename Left, typename Right, typename Attribute>
+ template <typename Left, typename Right, typename Attribute
+ , typename Context, typename Iterator>
     struct binary_handles_container
       : mpl::or_<
- handles_container<Left, Attribute>
- , handles_container<Right, Attribute> >
+ handles_container<Left, Attribute, Context, Iterator>
+ , handles_container<Right, Attribute, Context, Iterator> >
     {};
 
- template <typename Elements, typename Attribute>
+ template <typename Elements, typename Attribute, typename Context
+ , typename Iterator>
     struct nary_handles_container
       : mpl::not_<
             is_same<
                 typename mpl::find_if<
- Elements, handles_container<mpl::_, Attribute>
+ Elements, handles_container<mpl::_, Attribute
+ , Context, Iterator>
>::type
               , typename mpl::end<Elements>::type> >
     {};

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 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -16,7 +16,9 @@
 #include <string>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
 #include <boost/proto/proto_fwd.hpp>
+#include <boost/type_traits/is_const.hpp>
 #if defined(__GNUC__) && (__GNUC__ < 4)
 #include <boost/type_traits/add_const.hpp>
 #endif
@@ -124,10 +126,10 @@
     // Get the C string from a string
     ///////////////////////////////////////////////////////////////////////////
     template <typename String>
- struct get_c_string;
+ struct extract_c_string;
 
     template <typename String>
- struct get_c_string
+ struct extract_c_string
     {
         typedef typename char_type_of<String>::type char_type;
 
@@ -146,36 +148,36 @@
     
     // Forwarder that strips const
     template <typename T>
- struct get_c_string<T const>
+ struct extract_c_string<T const>
     {
- static typename get_c_string<T>::char_type const* call (T const str)
+ static typename extract_c_string<T>::char_type const* call (T const str)
         {
- return get_c_string<T>::call(str);
+ return extract_c_string<T>::call(str);
         }
     };
 
     // Forwarder that strips references
     template <typename T>
- struct get_c_string<T&>
+ struct extract_c_string<T&>
     {
- static typename get_c_string<T>::char_type const* call (T& str)
+ static typename extract_c_string<T>::char_type const* call (T& str)
         {
- return get_c_string<T>::call(str);
+ return extract_c_string<T>::call(str);
         }
     };
 
     // Forwarder that strips const references
     template <typename T>
- struct get_c_string<T const&>
+ struct extract_c_string<T const&>
     {
- static typename get_c_string<T>::char_type const* call (T const& str)
+ static typename extract_c_string<T>::char_type const* call (T const& str)
         {
- return get_c_string<T>::call(str);
+ return extract_c_string<T>::call(str);
         }
     };
 
     template <typename T, typename Traits, typename Allocator>
- struct get_c_string<std::basic_string<T, Traits, Allocator> >
+ struct extract_c_string<std::basic_string<T, Traits, Allocator> >
     {
         typedef T char_type;
 
@@ -191,6 +193,34 @@
             return str.c_str();
         }
     };
+
+ template <typename T>
+ typename extract_c_string<T*>::char_type const*
+ get_c_string (T* str)
+ {
+ return extract_c_string<T*>::call(str);
+ }
+
+ template <typename T>
+ typename extract_c_string<T const*>::char_type const*
+ get_c_string (T const* str)
+ {
+ return extract_c_string<T const*>::call(str);
+ }
+
+ template <typename String>
+ typename extract_c_string<String>::char_type const*
+ get_c_string (String& str)
+ {
+ return extract_c_string<String>::call(str);
+ }
+
+ template <typename String>
+ typename extract_c_string<String>::char_type const*
+ get_c_string (String const& str)
+ {
+ return extract_c_string<String>::call(str);
+ }
 
     ///////////////////////////////////////////////////////////////////////////
     // Get the begin/end iterators from a string
@@ -269,6 +299,37 @@
     inline typename disable_if<is_container<Str>
       , T const*>::type get_end(Str const& str)
     { return get_end(get_begin<T>(str)); }
-}}}
+}
+
+namespace result_of
+{
+ template <typename Char, typename T, typename Enable = void>
+ struct get_begin
+ {
+ typedef typename traits::char_type_of<T>::type char_type;
+
+ typedef typename mpl::if_<
+ is_const<char_type>
+ , char_type const
+ , char_type
+ >::type* type;
+ };
+
+ template <typename Char, typename Str>
+ struct get_begin<Char, Str
+ , typename enable_if<traits::is_container<Str> >::type>
+ {
+ typedef typename mpl::if_<
+ is_const<Str>
+ , typename Str::const_iterator
+ , typename Str::iterator
+ >::type type;
+ };
+
+ template <typename Char, typename T>
+ struct get_end : get_begin<Char, T> {};
+}
+
+}}
 
 #endif

Modified: branches/release/boost/spirit/home/support/utree/detail/utree_detail2.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/utree/detail/utree_detail2.hpp (original)
+++ branches/release/boost/spirit/home/support/utree/detail/utree_detail2.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -459,8 +459,8 @@
                     boost::throw_exception(bad_type_exception());
                     break;
 
- case type::uninitialized_type:
- return f(utree::uninitialized);
+ case type::invalid_type:
+ return f(utree::invalid);
 
                 case type::nil_type:
                     return f(utree::nil);
@@ -522,8 +522,8 @@
                     boost::throw_exception(bad_type_exception());
                     break;
 
- case type::uninitialized_type:
- return visit_impl::apply(y, detail::bind(f, utree::uninitialized));
+ case type::invalid_type:
+ return visit_impl::apply(y, detail::bind(f, utree::invalid));
 
                 case type::nil_type:
                     return visit_impl::apply(y, detail::bind(f, utree::nil));
@@ -620,10 +620,10 @@
         return new stored_function<F>(*this);
     }
 
- inline utree::utree(utree::uninitialized_type)
+ inline utree::utree(utree::invalid_type)
     {
         s.initialize();
- set_type(type::uninitialized_type);
+ set_type(type::invalid_type);
     }
 
     inline utree::utree(utree::nil_type)
@@ -631,13 +631,7 @@
         s.initialize();
         set_type(type::nil_type);
     }
-
- inline utree::utree(utree::list_type)
- {
- s.initialize();
- ensure_list_type();
- }
-
+
     inline utree::utree(bool b_)
     {
         s.initialize();
@@ -730,7 +724,7 @@
     inline utree::utree(boost::iterator_range<Iter> r)
     {
         s.initialize();
- set_type(type::uninitialized_type);
+
         assign(r.begin(), r.end());
     }
 
@@ -786,13 +780,6 @@
         return *this;
     }
 
- inline utree& utree::operator=(list_type)
- {
- free();
- ensure_list_type();
- return *this;
- }
-
     inline utree& utree::operator=(bool b_)
     {
         free();
@@ -1028,6 +1015,8 @@
             return p->assign(first, last);
 
         clear();
+ set_type(type::list_type);
+
         while (first != last)
         {
             push_back(*first);
@@ -1040,9 +1029,9 @@
         if (get_type() == type::reference_type)
             return p->clear();
 
- // clear will always make this an uninitialized type
+ // clear will always make this an invalid type
         free();
- set_type(type::uninitialized_type);
+ set_type(type::invalid_type);
     }
 
     inline void utree::pop_front()
@@ -1175,7 +1164,7 @@
         if (t == type::list_type)
             return l.size == 0;
 
- return t == type::nil_type || t == type::uninitialized_type;
+ return t == type::nil_type || t == type::invalid_type;
     }
 
     inline std::size_t utree::size() const
@@ -1297,7 +1286,7 @@
     inline void utree::ensure_list_type()
     {
         type::info t = get_type();
- if (t == type::uninitialized_type || t == type::nil_type)
+ if (t == type::invalid_type)
         {
             set_type(type::list_type);
             l.default_construct();
@@ -1337,7 +1326,7 @@
             default:
                 boost::throw_exception(bad_type_exception());
                 break;
- case type::uninitialized_type:
+ case type::invalid_type:
             case type::nil_type:
                 break;
             case type::bool_type:

Modified: branches/release/boost/spirit/home/support/utree/operators.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/utree/operators.hpp (original)
+++ branches/release/boost/spirit/home/support/utree/operators.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -51,7 +51,7 @@
     std::ostream& operator<<(std::ostream& out, utree const& x);
     std::istream& operator>>(std::istream& in, utree& x);
 
- std::ostream& operator<<(std::ostream& out, utree::uninitialized_type const& x);
+ std::ostream& operator<<(std::ostream& out, utree::invalid_type const& x);
     std::ostream& operator<<(std::ostream& out, utree::nil_type const& x);
 
     // Logical operators
@@ -116,7 +116,7 @@
             return static_cast<Base const&>(a) == static_cast<Base const&>(b);
         }
 
- bool operator()(utree::uninitialized_type, utree::uninitialized_type) const
+ bool operator()(utree::invalid_type, utree::invalid_type) const
         {
             return true;
         }
@@ -172,7 +172,7 @@
             return static_cast<Base const&>(a) < static_cast<Base const&>(b);
         }
 
- bool operator()(utree::uninitialized_type, utree::uninitialized_type) const
+ bool operator()(utree::invalid_type, utree::invalid_type) const
         {
             boost::throw_exception(bad_type_exception());
             return false; // no less than comparison for nil
@@ -204,9 +204,9 @@
         std::ostream& out;
         utree_print(std::ostream& out) : out(out) {}
 
- void operator()(utree::uninitialized_type) const
+ void operator()(utree::invalid_type) const
         {
- out << "<uninitialized> ";
+ out << "<invalid> ";
         }
 
         void operator()(utree::nil_type) const
@@ -493,7 +493,7 @@
         return out;
     }
 
- inline std::ostream& operator<<(std::ostream& out, utree::uninitialized_type const& x)
+ inline std::ostream& operator<<(std::ostream& out, utree::invalid_type const& x)
     {
         return out;
     }

Modified: branches/release/boost/spirit/home/support/utree/utree.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/utree/utree.hpp (original)
+++ branches/release/boost/spirit/home/support/utree/utree.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -62,7 +62,7 @@
     {
         enum info
         {
- uninitialized_type, // the utree has not been initialized (it's
+ invalid_type, // the utree has not been initialized (it's
                                 // default constructed)
             nil_type, // nil is the sentinel (empty) utree type.
             list_type, // A doubly linked list of utrees.
@@ -249,9 +249,9 @@
     class utree {
     public:
         ///////////////////////////////////////////////////////////////////////
- // The uninitialized type
- struct uninitialized_type {};
- static uninitialized_type const uninitialized;
+ // The invalid type
+ struct invalid_type {};
+ static invalid_type const invalid;
 
         ///////////////////////////////////////////////////////////////////////
         // The nil type
@@ -261,7 +261,7 @@
         ///////////////////////////////////////////////////////////////////////
         // The list type, this can be used to initialize an utree to hold an
         // empty list
- struct list_type {};
+ struct list_type;
         static list_type const list;
 
         //[utree_container_types
@@ -294,21 +294,16 @@
            are non-explicit on purpose, allowing to use an utree instance as
            the attribute to almost any Qi parser.
         */
- // This constructs an `uninitialized_type` node. When used in places
+ // This constructs an `invalid_type` node. When used in places
         // where a boost::optional is expected (i.e. as an attribute for the
         // optional component), this represents the 'empty' state.
- utree(uninitialized_type = uninitialized);
+ utree(invalid_type = invalid);
 
         // This initializes a `nil_type` node, which represents a valid,
- // 'initialized empty' utree (different from uninitialized_type!).
+ // 'initialized empty' utree (different from invalid_type!).
         utree(nil_type);
         reference operator=(nil_type);
 
- // This initializes a `list_type` node, which represents an empty
- // but valid utree list.
- utree(list_type);
- reference operator=(list_type);
-
         // This initializes a `boolean_type` node, which can hold 'true' or
         // 'false' only.
         utree(bool);
@@ -466,6 +461,7 @@
         reference operator[](size_type);
         const_reference operator[](size_type) const;
 
+ // This clears the utree instance and resets its type to 'invalid_type'
         void clear();
 
         void swap(utree&);
@@ -496,6 +492,9 @@
         utree eval(scope const&) const;
 
     //<-
+ protected:
+ void ensure_list_type();
+
     private:
         typedef utree_type type;
 
@@ -509,7 +508,6 @@
 
         type::info get_type() const;
         void set_type(type::info);
- void ensure_list_type();
         void free();
         void copy(const_reference);
 
@@ -529,11 +527,24 @@
     };
     //]
 
+ struct utree::list_type : utree
+ {
+ using utree::operator=;
+
+ list_type() : utree() { ensure_list_type(); }
+
+ template <typename T0>
+ list_type(T0 t0) : utree(t0) {}
+
+ template <typename T0, typename T1>
+ list_type(T0 t0, T1 t1) : utree(t0, t1) {}
+ };
+
     ///////////////////////////////////////////////////////////////////////////
     // predefined instances for singular types
- utree::uninitialized_type const utree::uninitialized = {};
+ utree::invalid_type const utree::invalid = {};
     utree::nil_type const utree::nil = {};
- utree::list_type const utree::list = {};
+ utree::list_type const utree::list = utree::list_type();
 
     ///////////////////////////////////////////////////////////////////////////
     //[utree_scope

Modified: branches/release/boost/spirit/home/support/utree/utree_traits.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/utree/utree_traits.hpp (original)
+++ branches/release/boost/spirit/home/support/utree/utree_traits.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -41,6 +41,20 @@
 ///////////////////////////////////////////////////////////////////////////////
 namespace boost { namespace spirit { namespace traits
 {
+ // this specialization tells Spirit how to extract the type of the value
+ // stored in the given utree node
+ template <>
+ struct variant_which<utree>
+ {
+ static int call(utree const& u) { return u.which(); }
+ };
+
+ template <>
+ struct variant_which<utree::list_type>
+ {
+ static int call(utree::list_type const& u) { return u.which(); }
+ };
+
     ///////////////////////////////////////////////////////////////////////////
     // this specialization lets Spirit know that typed basic_strings
     // are strings
@@ -64,11 +78,12 @@
     ///////////////////////////////////////////////////////////////////////////
     // these specializations extract a c string from a utree typed string
     template <typename String>
- struct get_c_string;
+ struct extract_c_string;
 
     template <typename T, utree_type::info I>
- struct get_c_string<spirit::basic_string<iterator_range<T const*>, I> >
- {
+ struct extract_c_string<
+ spirit::basic_string<iterator_range<T const*>, I>
+ > {
         typedef T char_type;
 
         typedef spirit::basic_string<iterator_range<T const*>, I> string;
@@ -85,7 +100,7 @@
     };
     
     template <utree_type::info I>
- struct get_c_string<spirit::basic_string<std::string, I> >
+ struct extract_c_string<spirit::basic_string<std::string, I> >
     {
         typedef char char_type;
 
@@ -154,7 +169,7 @@
                 iterator_type;
 
             // make sure the attribute is a list, at least an empty one
- if (attr.which() != utree_type::list_type)
+ if (attr.empty())
                 attr = utree::list;
 
             iterator_type end = traits::end(val);
@@ -176,52 +191,30 @@
     {
         static void call(utree const& val, utree& attr)
         {
- if (val.which() != utree_type::list_type)
+ if (attr.empty())
                 attr = val;
             else {
                 typedef utree::const_iterator iterator_type;
 
- // make sure the attribute is a list, at least an empty one
- if (attr.which() != utree_type::list_type)
- attr = utree::list;
-
- iterator_type end = val.end();
- for (iterator_type i = val.begin(); i != end; ++i)
- attr.push_back(*i);
+ iterator_type end = traits::end(val);
+ for (iterator_type i = traits::begin(val); i != end; traits::next(i))
+ push_back(attr, traits::deref(i));
             }
         }
     };
-
- ///////////////////////////////////////////////////////////////////////////
- //
+
     template <>
- struct transform_attribute<utree, utree, qi::domain>
+ struct assign_to_container_from_value<utree, utree::list_type>
     {
- typedef utree& type;
-
- static utree& pre(utree& val) { return val; }
-
- // If the rhs' attribute is already a list, push it back into the
- // rule's attribute, otherwise wrap it into a list and push that back.
- // This ensures that the rule always exposes an utree list node.
- static void post(utree& attr, utree const& val)
+ static void call(utree const& val, utree& attr)
         {
- if (val.which() != utree_type::list_type) {
- utree ut (utree::list);
- ut.push_back(val);
- attr.swap(ut);
- }
+ if (attr.empty())
+ attr = val;
+ else
+ push_back(attr, val);
         }
-
- // fail() will be called by Qi rule's if the rhs failed parsing
- static void fail(utree&) {}
     };
 
- template <>
- struct transform_attribute<utree&, utree, qi::domain>
- : transform_attribute<utree, utree, qi::domain>
- {};
-
     ///////////////////////////////////////////////////////////////////////////
     // this specialization makes sure strings get assigned as a whole and are
     // not converted into a utree list
@@ -287,7 +280,7 @@
                 attr.assign(first, last);
             else {
                 for (Iterator i = first; i != last; ++i)
- push_back(attr, *i);
+ push_back(attr, traits::deref(i));
             }
         }
     };
@@ -307,7 +300,7 @@
         
             static bool is_valid(utree const& attr)
             {
- switch (attr.which())
+ switch (traits::which(attr))
                 {
                 case utree_type::reference_type:
                     return is_valid(attr.deref());
@@ -322,19 +315,19 @@
             }
         };
     }
-
+
     template <>
- struct attribute_as_xxx<std::string, utree>
+ struct attribute_as<std::string, utree>
       : detail::attribute_as_string_type
     {};
 
     template <>
- struct attribute_as_xxx<utf8_string_type, utree>
+ struct attribute_as<utf8_string_type, utree>
       : detail::attribute_as_string_type
     {};
 
     template <>
- struct attribute_as_xxx<utf8_string_range_type, utree>
+ struct attribute_as<utf8_string_range_type, utree>
       : detail::attribute_as_string_type
     {};
 
@@ -352,7 +345,7 @@
         
             static bool is_valid(utree const& attr)
             {
- switch (attr.which())
+ switch (traits::which(attr))
                 {
                 case utree_type::reference_type:
                     return is_valid(attr.deref());
@@ -368,12 +361,12 @@
     }
 
     template <>
- struct attribute_as_xxx<utf8_symbol_type, utree>
+ struct attribute_as<utf8_symbol_type, utree>
       : detail::attribute_as_symbol_type
     {};
 
     template <>
- struct attribute_as_xxx<utf8_symbol_range_type, utree>
+ struct attribute_as<utf8_symbol_range_type, utree>
       : detail::attribute_as_symbol_type
     {};
 
@@ -391,7 +384,7 @@
 
             static bool is_valid(utree const& attr)
             {
- switch (attr.which())
+ switch (traits::which(attr))
                 {
                 case utree_type::reference_type:
                     return is_valid(attr.deref());
@@ -407,12 +400,12 @@
     }
 
     template <>
- struct attribute_as_xxx<binary_string_type, utree>
+ struct attribute_as<binary_string_type, utree>
       : detail::attribute_as_binary_string_type
     {};
 
     template <>
- struct attribute_as_xxx<binary_range_type, utree>
+ struct attribute_as<binary_range_type, utree>
       : detail::attribute_as_binary_string_type
     {};
 
@@ -423,9 +416,9 @@
     {
         static bool call(utree& c, T const& val)
         {
- switch (c.which())
+ switch (traits::which(c))
             {
- case utree_type::uninitialized_type:
+ case utree_type::invalid_type:
                 case utree_type::nil_type:
                 case utree_type::list_type:
                     c.push_back(val);
@@ -445,6 +438,23 @@
     };
 
     ///////////////////////////////////////////////////////////////////////////
+ // ensure the utree attribute is an empty list
+ template <>
+ struct make_container_attribute<utree>
+ {
+ static void call(utree& ut)
+ {
+ if (traits::which(ut) != utree_type::list_type)
+ ut = utree::list;
+ }
+ };
+
+ template <>
+ struct make_container_attribute<utree::list_type>
+ : make_container_attribute<utree>
+ {};
+
+ ///////////////////////////////////////////////////////////////////////////
     // an utree is a container on its own
     template <>
     struct build_std_vector<utree>
@@ -468,6 +478,14 @@
     // or a grammar exposes an utree as it's attribute
     namespace detail
     {
+ // checks if the attr is the explicit utree list type, utree::list_type
+ template <typename Attribute>
+ struct attribute_is_not_utree_list
+ : mpl::and_<
+ mpl::not_<is_same<utree::list_type, Attribute> >,
+ traits::is_container<Attribute> >
+ {};
+
         template <typename Attribute>
         struct attribute_is_not_utree
           : mpl::and_<
@@ -477,43 +495,45 @@
     }
 
     template <
- typename Iterator, typename T1, typename T2, typename T3
- , typename T4>
- struct handles_container<qi::rule<Iterator, T1, T2, T3, T4>, utree>
- : detail::attribute_is_not_utree<typename attribute_of<
- qi::rule<Iterator, T1, T2, T3, T4>
+ typename IteratorA, typename IteratorB, typename Context
+ , typename T1, typename T2, typename T3, typename T4>
+ struct handles_container<qi::rule<IteratorA, T1, T2, T3, T4>
+ , utree, Context, IteratorB>
+ : detail::attribute_is_not_utree_list<typename attribute_of<
+ qi::rule<IteratorA, T1, T2, T3, T4>, Context, IteratorB
>::type>
     {};
-
+
     template <
- typename Iterator, typename T1, typename T2, typename T3
- , typename T4>
- struct handles_container<qi::grammar<Iterator, T1, T2, T3, T4>, utree>
- : detail::attribute_is_not_utree<typename attribute_of<
- qi::grammar<Iterator, T1, T2, T3, T4>
+ typename IteratorA, typename IteratorB, typename Context
+ , typename T1, typename T2, typename T3, typename T4>
+ struct handles_container<qi::grammar<IteratorA, T1, T2, T3, T4>
+ , utree, Context, IteratorB>
+ : detail::attribute_is_not_utree_list<typename attribute_of<
+ qi::grammar<IteratorA, T1, T2, T3, T4>, Context, IteratorB
>::type>
     {};
-
+
     template <
- typename OutputIterator, typename T1, typename T2, typename T3
- , typename T4>
- struct handles_container<
- karma::rule<OutputIterator, T1, T2, T3, T4>, utree>
+ typename IteratorA, typename IteratorB, typename Context
+ , typename T1, typename T2, typename T3, typename T4>
+ struct handles_container<karma::rule<IteratorA, T1, T2, T3, T4>
+ , utree, Context, IteratorB>
       : detail::attribute_is_not_utree<typename attribute_of<
- karma::rule<OutputIterator, T1, T2, T3, T4>
+ karma::rule<IteratorA, T1, T2, T3, T4>, Context, IteratorB
>::type>
     {};
 
     template <
- typename OutputIterator, typename T1, typename T2, typename T3
- , typename T4>
- struct handles_container<
- karma::grammar<OutputIterator, T1, T2, T3, T4>, utree>
+ typename IteratorA, typename IteratorB, typename Context
+ , typename T1, typename T2, typename T3, typename T4>
+ struct handles_container<karma::grammar<IteratorA, T1, T2, T3, T4>
+ , utree, Context, IteratorB>
       : detail::attribute_is_not_utree<typename attribute_of<
- karma::grammar<OutputIterator, T1, T2, T3, T4>
+ karma::grammar<IteratorA, T1, T2, T3, T4>, Context, IteratorB
>::type>
     {};
-
+
     ///////////////////////////////////////////////////////////////////////////
     // the specialization below tells Spirit how to handle utree if it is used
     // with an optional component
@@ -527,10 +547,10 @@
             return val;
         }
 
- // only 'uninitialized_type' utree nodes are not valid
+ // only 'invalid_type' utree nodes are not valid
         static bool is_valid(utree const& val)
         {
- return val.which() != utree_type::uninitialized_type;
+ return traits::which(val) != utree_type::invalid_type;
         }
     };
 
@@ -559,14 +579,6 @@
       : mpl::false_
     {};
 
- // this specialization tells Spirit how to extract the type of the value
- // stored in the given utree node
- template <>
- struct variant_which<utree>
- {
- static int call(utree const& u) { return u.which(); }
- };
-
     // The specializations below tell Spirit to verify whether an attribute
     // type is compatible with a given variant type
     template <>
@@ -596,14 +608,14 @@
     };
 
     template <>
- struct compute_compatible_component_variant<utree, utree::uninitialized_type>
+ struct compute_compatible_component_variant<utree, utree::invalid_type>
       : mpl::true_
     {
- typedef utree::uninitialized_type compatible_type;
+ typedef utree::invalid_type compatible_type;
 
         static bool is_compatible(int d)
         {
- return d == utree_type::uninitialized_type;
+ return d == utree_type::invalid_type;
         }
     };
 
@@ -741,7 +753,7 @@
 
         static bool is_compatible(int d)
         {
- return d >= utree_type::uninitialized_type &&
+ return d >= utree_type::invalid_type &&
                    d <= utree_type::reference_type;
         }
     };
@@ -755,7 +767,7 @@
 
         static bool is_compatible(int d)
         {
- return d >= utree_type::uninitialized_type &&
+ return d >= utree_type::invalid_type &&
                    d <= utree_type::reference_type;
         }
     };
@@ -783,7 +795,7 @@
         static type call(utree const& t)
         {
             utf8_symbol_range_type r = boost::get<utf8_symbol_range_type>(t);
- return std::string(r.begin(), r.end());
+ return std::string(traits::begin(r), traits::end(r));
         }
     };
 
@@ -804,7 +816,7 @@
         template <typename T>
         inline T get_or_deref(utree const& t)
         {
- if (t.which() == utree_type::list_type)
+ if (traits::which(t) == utree_type::list_type)
                 return boost::get<T>(t.front());
             return boost::get<T>(t);
         }
@@ -880,7 +892,7 @@
         static type call(utree const& t, Context&)
         {
             utf8_string_range_type r = detail::get_or_deref<utf8_string_range_type>(t);
- return std::basic_string<char, Traits, Alloc>(r.begin(), r.end());
+ return type(traits::begin(r), traits::end(r));
         }
     };
 
@@ -893,7 +905,7 @@
         static type call(utree const& t, Context&)
         {
             utf8_symbol_range_type r = detail::get_or_deref<utf8_symbol_range_type>(t);
- return std::string(r.begin(), r.end());
+ return std::string(traits::begin(r), traits::end(r));
         }
     };
 
@@ -906,7 +918,7 @@
         static type call(utree const& t, Context&)
         {
             utf8_string_range_type r = detail::get_or_deref<utf8_string_range_type>(t);
- return std::string(r.begin(), r.end());
+ return std::string(traits::begin(r), traits::end(r));
         }
     };
 
@@ -976,7 +988,7 @@
         static type pre(utree const& t)
         {
             utf8_string_range_type r = detail::get_or_deref<utf8_string_range_type>(t);
- return std::basic_string<char, Traits, Alloc>(r.begin(), r.end());
+ return type(traits::begin(r), traits::end(r));
         }
     };
 
@@ -1004,7 +1016,7 @@
         static type pre(utree const& t)
         {
             utf8_string_range_type r = detail::get_or_deref<utf8_string_range_type>(t);
- return std::string(r.begin(), r.end());
+ return std::string(traits::begin(r), traits::end(r));
         }
     };
 
@@ -1016,10 +1028,11 @@
         static type pre(utree const& t)
         {
             utf8_symbol_range_type r = detail::get_or_deref<utf8_symbol_range_type>(t);
- return std::string(r.begin(), r.end());
+ return std::string(traits::begin(r), traits::end(r));
         }
     };
 
+ #if 0
     // If a rule takes an utree attribute and that utree instance holds nothing
     // more than a list, we dereference this to simplify attribute handling
     // down the stream, i.e. ( ( 1 2 3 ) ) --> ( 1 2 3 ).
@@ -1039,6 +1052,7 @@
     struct transform_attribute<utree const&, utree, karma::domain>
       : transform_attribute<utree const, utree, karma::domain>
     {};
+ #endif
 }}}
 
 #endif

Modified: branches/release/libs/spirit/doc/Jamfile
==============================================================================
--- branches/release/libs/spirit/doc/Jamfile (original)
+++ branches/release/libs/spirit/doc/Jamfile 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -11,7 +11,25 @@
 
 import boostbook ;
 import quickbook ;
-import auto-index ;
+import modules ;
+
+if --enable-index in [ modules.peek : ARGV ]
+{
+ ECHO "Building the Spirit docs with automatic index generation enabled." ;
+ using auto-index ;
+ project : requirements
+ <quickbook-define>__use_auto_index__
+ <auto-index>on
+ <auto-index-script>index.idx
+ <format>pdf:<auto-index-internal>off
+ <format>html:<auto-index-internal>on
+ <xsl:param>index.on.type=1
+ ;
+}
+else
+{
+ ECHO "Building the Spirit docs with automatic index generation disabled. Try building with --enable-index." ;
+}
 
 path-constant images_location : html ;
 
@@ -32,12 +50,5 @@
         <format>pdf:<xsl:param>draft.mode="no"
         <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/spirit/doc/html
 
- # settings specific to auto_index
- <quickbook-define>__use_auto_index__
- <auto-index>on
- <auto-index-script>index.idx
- <format>pdf:<auto-index-internal>off
- <format>html:<auto-index-internal>on
- <xsl:param>index.on.type=1
     ;
 

Modified: branches/release/libs/spirit/doc/advanced/customization_points.qbk
==============================================================================
--- branches/release/libs/spirit/doc/advanced/customization_points.qbk (original)
+++ branches/release/libs/spirit/doc/advanced/customization_points.qbk 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -208,7 +208,121 @@
 [endsect] [/ is_container]
 
 [/////////////////////////////////////////////////////////////////////////////]
-[section:handles_container Determine Whether a Component Handles Container Attributes (Karma)]
+[section:handles_container Determine Whether a Component Handles Container Attributes (Qi and Karma)]
+
+[heading handles_container]
+
+The template `handles_container` is a template meta-function used as an attribute
+customization point. It is invoked by the /Qi/ __qi_sequence__ (`>>`) and
+/Karma/ __karma_sequence__ operators in order to determine whether a sequence
+element (component) handles container attributes directly. This customization
+point is invoked for container attributes only, and only if the sequence is
+compatible with the supplied container attribute.
+
+If a component, which is part of a sequence is able to handle a container
+attribute directly, the sequence passes the attribute to the component without
+any additional action. In __qi__ the component uses the attribute to directly
+store all matched attributes. In __karma__ the generator component extracts
+the attributes needed for output generation directly from this attribute.
+
+If a component, which is part of a sequence is not able to handle container
+attributes, in __qi__ the sequence passes a new instance of the container
+attribute's `value_type` to the parser component, inserting the result into
+the attribute on behalf of the parser component. In __karma__ the sequence
+extracts the next container element on behalf of the generator component and
+passing it the extracted value.
+
+[heading Header]
+
+ #include <boost/spirit/home/support/handles_container.hpp>
+
+Also, see __include_structure__.
+
+[note This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.]
+
+[heading Namespace]
+
+[table
+ [[Name]]
+ [[`boost::spirit::traits`]]
+]
+
+[heading Synopsis]
+
+ template <typename Component, typename Attribute, typename Enable>
+ struct handles_container
+ {
+ typedef <unspecified> type;
+ };
+
+[heading Template parameters]
+
+[table
+ [[Parameter] [Description] [Default]]
+ [[`Component`] [The component type `Component` which needs to
+ be tested whether it handles container attributes
+ directly.] [none]]
+ [[`Attribute`] [The attribute type `Attribute` as passed to the
+ sequence operator.]
+ [[`Enable`] [Helper template parameter usable to selectively
+ enable or disable certain specializations
+ of `is_container` utilizing SFINAE (i.e.
+ `boost::enable_if` or `boost::disable_if`).] [`void`]]
+]
+
+[heading Notation]
+
+[variablelist
+ [[`Component`] [A comonent type to be tested whether it directly handles
+ container attributes in the context of sequences.]]
+ [[`Attribute`] [A container attribute type as passed to the sequence.]]
+ [[`T1`, `T2`, ...] [Arbitrary types]]
+]
+
+[heading Expression Semantics]
+
+[table
+ [[Expression] [Semantics]]
+ [[`handles_container<Component, Attribute>::type`]
+ [Result of the metafunction that evaluates to
+ `mpl::true_` if a given component type `Component`,
+ handles container attributes directly,
+ `mpl::false_` otherwise
+ (See __mpl_boolean_constant__).]]
+]
+
+[heading Predefined Specializations]
+
+__spirit__ predefines specializations of this customization point for
+several types. The following table lists those types together with the
+conditions for which the corresponding specializations will evaluate to
+`mpl::true_` (see __mpl_boolean_constant__):
+
+[table
+ [[Template Parameters] [Value]]
+ [[`Component`, `Attribute`] [Always returns `mpl::false_` (the default).]]
+ [[`rule<Iterator, T1, T2, T3, T4>`, `Attribute`]
+ [Returns `is_container<A>`, where `A` is the
+ attribute exposed by the rule (__qi__ and
+ __karma__).]]
+ [[`grammar<Iterator, T1, T2, T3, T4>`, `Attribute`]
+ [Returns `is_container<A>`, where `A` is the
+ attribute exposed by the grammar (__qi__ and
+ __karma__).]]
+]
+
+[heading When to implement]
+
+The customization point `handles_container` needs to be implemented for a
+specific type whenever this type directly handles container attributes.
+It is applicable for parsers (__qi__) and generators (__karma__). It will have
+to be implemented under rare circumstances only.
+
+[heading Example]
+
+TBD
 
 [endsect] [/ handles_container]
 

Modified: branches/release/libs/spirit/doc/advanced/indepth.qbk
==============================================================================
--- branches/release/libs/spirit/doc/advanced/indepth.qbk (original)
+++ branches/release/libs/spirit/doc/advanced/indepth.qbk 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -84,15 +84,15 @@
 [/------------------------------------------------------------------------------]
 [heading Primitive Parsers]
 
-For our dissection study, we will use a __spirit__ primitive, the `int_parser`
+For our dissection study, we will use a __spirit__ primitive, the `any_int_parser`
 in the boost::spirit::qi namespace.
 
 [import ../../../../boost/spirit/home/qi/numeric/int.hpp]
-[primitive_parsers_int]
+[primitive_parsers_any_int_parser]
 
-The `int_parser` is derived from a `__primitive_parser_concept__<Derived>`, which
-in turn derives from `parser<Derived>`. Therefore, it supports the following
-requirements:
+The `any_int_parser` is derived from a `__primitive_parser_concept__<Derived>`,
+which in turn derives from `parser<Derived>`. Therefore, it supports the
+following requirements:
 
 * The `parse` member function
 * The `what` member function
@@ -117,15 +117,16 @@
 The /what/ function just tells us that it is an integer parser. Simple.
 
 The /attribute/ metafunction returns the T template parameter. We associate the
-`int_parser` to some placeholders for `short_`, `int_`, `long_` and `long_long`
-types. But, first, we enable these placeholders in namespace boost::spirit:
+`any_int_parser` to some placeholders for `short_`, `int_`, `long_` and
+`long_long` types. But, first, we enable these placeholders in namespace
+boost::spirit:
+
+[primitive_parsers_enable_short]
+[primitive_parsers_enable_int]
+[primitive_parsers_enable_long]
+[primitive_parsers_enable_long_long]
 
-[primitive_parsers_enable_short_]
-[primitive_parsers_enable_int_]
-[primitive_parsers_enable_long_]
-[primitive_parsers_enable_long_long_]
-
-Notice that `int_parser` is placed in the namespace boost::spirit::qi
+Notice that `any_int_parser` is placed in the namespace boost::spirit::qi
 while these /enablers/ are in namespace boost::spirit. The reason is
 that these placeholders are shared by other __spirit__ /domains/. __qi__,
 the parser is one domain. __karma__, the generator is another domain.
@@ -151,10 +152,10 @@
 
 Now:
 
-[primitive_parsers_short_]
-[primitive_parsers_int_]
-[primitive_parsers_long_]
-[primitive_parsers_long_long_]
+[primitive_parsers_short_primitive]
+[primitive_parsers_int_primitive]
+[primitive_parsers_long_primitive]
+[primitive_parsers_long_long_primitive]
 
 These, specialize `qi:make_primitive` for specific tags. They all
 inherit from `make_int` which does the actual work.

Modified: branches/release/libs/spirit/doc/html/index.html
==============================================================================
--- branches/release/libs/spirit/doc/html/index.html (original)
+++ branches/release/libs/spirit/doc/html/index.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Spirit 2.4.2</title>
 <link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="index.html" title="Spirit 2.4.2">
 <link rel="next" href="spirit/preface.html" title="Preface">
 </head>
@@ -33,7 +33,7 @@
 </div></div>
 <div><p class="copyright">Copyright &#169; 2001-2010 Joel de Guzman, Hartmut Kaiser</p></div>
 <div><div class="legalnotice">
-<a name="id854734"></a><p>
+<a name="id673117"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -172,7 +172,7 @@
         Generators</a></span></dt>
 <dt><span class="section">Auto Generator</span></dt>
 <dt><span class="section">Auxiliary Generators</span></dt>
-<dt><span class="section">Binary</span></dt>
+<dt><span class="section">Binary Generators</span></dt>
 <dt><span class="section">Char Generators</span></dt>
 <dt><span class="section">Generator Directives</span></dt>
 <dt><span class="section">Nonterminal Generators</span></dt>
@@ -242,7 +242,7 @@
 <dt><span class="section"><a href="spirit/advanced/customize/is_container.html">Determine if
         a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
 <dt><span class="section"><a href="spirit/advanced/customize/handles_container.html">Determine
- Whether a Component Handles Container Attributes (Karma)</a></span></dt>
+ Whether a Component Handles Container Attributes (Qi and Karma)</a></span></dt>
 <dt><span class="section"><a href="spirit/advanced/customize/transform.html">Transform an Attribute
         to a Different Type (Qi and Karma)</a></span></dt>
 <dt><span class="section"><a href="spirit/advanced/customize/assign_to.html">Store a Parsed
@@ -283,7 +283,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: December 24, 2010 at 02:04:01 GMT</small></p></td>
+<td align="left"><p><small>Last revised: January 01, 2011 at 22:06:17 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Attributes of Compound Components</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../attributes.html" title="Attributes">
 <link rel="prev" href="primitive_attributes.html" title="Attributes of Primitive Components">
@@ -130,7 +130,7 @@
           Compound Attribute Rules</a>.
         </p>
 <a name="spirit.abstracts.attributes.compound_attributes.the_attribute_of_sequence_parsers_and_generators"></a><h6>
-<a name="id872891"></a>
+<a name="id725373"></a>
           <a class="link" href="compound_attributes.html#spirit.abstracts.attributes.compound_attributes.the_attribute_of_sequence_parsers_and_generators">The
           Attribute of Sequence Parsers and Generators</a>
         </h6>
@@ -246,7 +246,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.abstracts.attributes.compound_attributes.the_attribute_of_alternative_parsers_and_generators"></a><h6>
-<a name="id873781"></a>
+<a name="id726470"></a>
           <a class="link" href="compound_attributes.html#spirit.abstracts.attributes.compound_attributes.the_attribute_of_alternative_parsers_and_generators">The
           Attribute of Alternative Parsers and Generators</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parsing Expression Grammar</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="syntax_diagram.html" title="Syntax Diagram">
@@ -28,7 +28,7 @@
       Expression Grammar</a>
 </h3></div></div></div>
 <p>
- Parsing Expression Grammars (PEG) <sup>[<a name="id870806" href="#ftn.id870806" class="footnote">6</a>]</sup> are a derivative of Extended Backus-Naur Form (EBNF) <sup>[<a name="id870818" href="#ftn.id870818" class="footnote">7</a>]</sup> with a different interpretation, designed to represent a recursive
+ Parsing Expression Grammars (PEG) <sup>[<a name="id723451" href="#ftn.id723451" class="footnote">6</a>]</sup> are a derivative of Extended Backus-Naur Form (EBNF) <sup>[<a name="id723466" href="#ftn.id723466" class="footnote">7</a>]</sup> with a different interpretation, designed to represent a recursive
         descent parser. A PEG can be directly represented as a recursive-descent
         parser.
       </p>
@@ -39,7 +39,7 @@
         Abstract Syntax Tree) for each PEG grammar.
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.sequences"></a><h5>
-<a name="id870838"></a>
+<a name="id723494"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.sequences">Sequences</a>
       </h5>
 <p>
@@ -75,7 +75,7 @@
         </p></td></tr>
 </table></div>
 <a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h5>
-<a name="id870967"></a>
+<a name="id723652"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.alternatives">Alternatives</a>
       </h5>
 <p>
@@ -112,7 +112,7 @@
         is valid. As noted, there can only be one valid parse tree.
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h5>
-<a name="id871109"></a>
+<a name="id723831"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.loops">Loops</a>
       </h5>
 <p>
@@ -163,7 +163,7 @@
         We will see more of these other mechanisms shortly.
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h5>
-<a name="id871250"></a>
+<a name="id724004"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.difference">Difference</a>
       </h5>
 <p>
@@ -189,11 +189,11 @@
 </table></div>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id870806" href="#id870806" class="para">6</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id723451" href="#id723451" class="para">6</a>] </sup>
           Bryan Ford: Parsing Expression Grammars: A Recognition-Based Syntactic
           Foundation, http://pdos.csail.mit.edu/~baford/packrat/popl04/
         </p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id870818" href="#id870818" class="para">7</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id723466" href="#id723466" class="para">7</a>] </sup>
           Richard E. Pattis: EBNF: A Notation to Describe Syntax, http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf
         </p></div>
 </div>

Modified: branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Syntax Diagram</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="../abstracts.html" title="Abstracts">
@@ -28,9 +28,9 @@
 </h3></div></div></div>
 <p>
         In the next section, we will deal with Parsing Expression Grammars (PEG)
- <sup>[<a name="id870403" href="#ftn.id870403" class="footnote">3</a>]</sup>, a variant of Extended Backus-Naur Form (EBNF) <sup>[<a name="id870415" href="#ftn.id870415" class="footnote">4</a>]</sup> with a different interpretation. It is easier to understand PEG
+ <sup>[<a name="id723008" href="#ftn.id723008" class="footnote">3</a>]</sup>, a variant of Extended Backus-Naur Form (EBNF) <sup>[<a name="id723023" href="#ftn.id723023" class="footnote">4</a>]</sup> with a different interpretation. It is easier to understand PEG
         using Syntax Diagrams. Syntax diagrams represent a grammar graphically. It
- was used extensively by Niklaus Wirth <sup>[<a name="id870427" href="#ftn.id870427" class="footnote">5</a>]</sup> in the "Pascal User Manual". Syntax Diagrams are easily
+ was used extensively by Niklaus Wirth <sup>[<a name="id723038" href="#ftn.id723038" class="footnote">5</a>]</sup> in the "Pascal User Manual". Syntax Diagrams are easily
         understandable by programmers due to their similarity to flow charts. The
         isomorphism of the diagrams and functions make them ideal for representing
         Recursive Descent parsers which are essentially mutually recursive functions.
@@ -43,7 +43,7 @@
         parsers and to <span class="emphasis"><em>Spirit.Karma</em></span> generators.
       </p>
 <a name="spirit.abstracts.syntax_diagram.elements"></a><h5>
-<a name="id870454"></a>
+<a name="id723074"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.elements">Elements</a>
       </h5>
 <p>
@@ -69,7 +69,7 @@
           <span class="inlinemediaobject"><img src="../.././images/non-terminal.png" alt="non-terminal"></span>
         </p></blockquote></div>
 <a name="spirit.abstracts.syntax_diagram.constructs"></a><h5>
-<a name="id870543"></a>
+<a name="id723169"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.constructs">Constructs</a>
       </h5>
 <p>
@@ -110,7 +110,7 @@
         This behavior is quite obvious with syntax diagrams as they resemble flow-charts.
       </p>
 <a name="spirit.abstracts.syntax_diagram.predicates"></a><h5>
-<a name="id870686"></a>
+<a name="id723320"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.predicates">Predicates</a>
       </h5>
 <p>
@@ -147,14 +147,14 @@
       </p>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id870403" href="#id870403" class="para">3</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id723008" href="#id723008" class="para">3</a>] </sup>
           Bryan Ford: Parsing Expression Grammars: A Recognition-Based Syntactic
           Foundation, http://pdos.csail.mit.edu/~baford/packrat/popl04/
         </p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id870415" href="#id870415" class="para">4</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id723023" href="#id723023" class="para">4</a>] </sup>
           Richard E. Pattis: EBNF: A Notation to Describe Syntax, http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf
         </p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id870427" href="#id870427" class="para">5</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id723038" href="#id723038" class="para">5</a>] </sup>
           Niklaus Wirth: The Programming Language Pascal. (July 1973)
         </p></div>
 </div>

Modified: branches/release/libs/spirit/doc/html/spirit/acknowledgments.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/acknowledgments.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/acknowledgments.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Acknowledgments</title>
 <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../index.html" title="Spirit 2.4.2">
 <link rel="prev" href="repository.html" title="Spirit Repository">
@@ -122,7 +122,7 @@
       if not, kick Joao :-)
     </p>
 <a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h4>
-<a name="id1323112"></a>
+<a name="id1115660"></a>
       <a class="link" href="acknowledgments.html#spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation">Acknowledgements
       from the Spirit V1 <span class="emphasis"><em>classic</em></span> Documentation</a>
     </h4>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -36,7 +36,7 @@
 <dt><span class="section"><a href="advanced/customize/is_container.html">Determine if
         a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
 <dt><span class="section"><a href="advanced/customize/handles_container.html">Determine
- Whether a Component Handles Container Attributes (Karma)</a></span></dt>
+ Whether a Component Handles Container Attributes (Qi and Karma)</a></span></dt>
 <dt><span class="section"><a href="advanced/customize/transform.html">Transform an Attribute
         to a Different Type (Qi and Karma)</a></span></dt>
 <dt><span class="section"><a href="advanced/customize/assign_to.html">Store a Parsed

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Customization of Spirit's Attribute Handling</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../advanced.html" title="Advanced">
 <link rel="prev" href="indepth/parsers_indepth.html" title="Parsers in Depth">
@@ -31,7 +31,7 @@
 <dt><span class="section"><a href="customize/is_container.html">Determine if
         a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
 <dt><span class="section"><a href="customize/handles_container.html">Determine
- Whether a Component Handles Container Attributes (Karma)</a></span></dt>
+ Whether a Component Handles Container Attributes (Qi and Karma)</a></span></dt>
 <dt><span class="section"><a href="customize/transform.html">Transform an Attribute
         to a Different Type (Qi and Karma)</a></span></dt>
 <dt><span class="section"><a href="customize/assign_to.html">Store a Parsed
@@ -48,7 +48,7 @@
         Attributes</a></span></dt>
 </dl></div>
 <a name="spirit.advanced.customize.why_do_we_need_attribute_customization_points"></a><h5>
-<a name="id1252042"></a>
+<a name="id1054431"></a>
         <a class="link" href="customize.html#spirit.advanced.customize.why_do_we_need_attribute_customization_points">Why
         do we need Attribute Customization Points</a>
       </h5>
@@ -133,7 +133,7 @@
         a description which needs to be specialized for what purpose.
       </p>
 <a name="spirit.advanced.customize.the_usage_of_customization_points"></a><h5>
-<a name="id1252356"></a>
+<a name="id1054836"></a>
         <a class="link" href="customize.html#spirit.advanced.customize.the_usage_of_customization_points">The
         Usage of Customization Points</a>
       </h5>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Store an Attribute after a Parser Produced a Pair of Iterators (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../assign_to.html" title="Store a Parsed Attribute Value (Qi)">
 <link rel="prev" href="../assign_to.html" title="Store a Parsed Attribute Value (Qi)">
@@ -28,7 +28,7 @@
           an Attribute after a Parser Produced a Pair of Iterators (Qi)</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.assign_to_attribute_from_iterators"></a><h6>
-<a name="id1258814"></a>
+<a name="id1061782"></a>
             <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.assign_to_attribute_from_iterators">assign_to_attribute_from_iterators</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             attribute as provided by the user.
           </p>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.module_headers"></a><h6>
-<a name="id1258842"></a>
+<a name="id1061826"></a>
             <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.namespace"></a><h6>
-<a name="id1258934"></a>
+<a name="id1061946"></a>
             <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,7 +79,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.synopsis"></a><h6>
-<a name="id1259007"></a>
+<a name="id1062031"></a>
             <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -89,7 +89,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.template_parameters"></a><h6>
-<a name="id1259168"></a>
+<a name="id1062233"></a>
             <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.template_parameters">Template
             parameters</a>
           </h6>
@@ -176,7 +176,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.notation"></a><h6>
-<a name="id1259379"></a>
+<a name="id1062478"></a>
             <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -203,7 +203,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.expression_semantics"></a><h6>
-<a name="id1259498"></a>
+<a name="id1062626"></a>
             <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -243,7 +243,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.predefined_specializations"></a><h6>
-<a name="id1259643"></a>
+<a name="id1062803"></a>
             <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -294,7 +294,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.when_to_implement"></a><h6>
-<a name="id1259792"></a>
+<a name="id1062978"></a>
             <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.when_to_implement">When
             to implement</a>
           </h6>
@@ -306,7 +306,7 @@
             from the pair of iterators.
           </p>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.example"></a><h6>
-<a name="id1259824"></a>
+<a name="id1063026"></a>
             <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Store an Attribute Value after a Parser Produced a Value (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../assign_to.html" title="Store a Parsed Attribute Value (Qi)">
 <link rel="prev" href="assign_to_attribute_from_iterators.html" title="Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
@@ -28,7 +28,7 @@
           an Attribute Value after a Parser Produced a Value (Qi)</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.assign_to_attribute_from_value"></a><h6>
-<a name="id1259852"></a>
+<a name="id1063070"></a>
             <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.assign_to_attribute_from_value">assign_to_attribute_from_value</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             is the attribute type).
           </p>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.module_headers"></a><h6>
-<a name="id1259923"></a>
+<a name="id1063170"></a>
             <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.namespace"></a><h6>
-<a name="id1260015"></a>
+<a name="id1063291"></a>
             <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,7 +79,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.synopsis"></a><h6>
-<a name="id1261875"></a>
+<a name="id1063376"></a>
             <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -89,7 +89,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.template_parameters"></a><h6>
-<a name="id1262014"></a>
+<a name="id1063550"></a>
             <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.template_parameters">Template
             parameters</a>
           </h6>
@@ -178,7 +178,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.notation"></a><h6>
-<a name="id1262261"></a>
+<a name="id1063843"></a>
             <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -205,7 +205,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.expression_semantics"></a><h6>
-<a name="id1262409"></a>
+<a name="id1064027"></a>
             <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -244,7 +244,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.predefined_specializations"></a><h6>
-<a name="id1262538"></a>
+<a name="id1064183"></a>
             <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -295,7 +295,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.when_to_implement"></a><h6>
-<a name="id1262665"></a>
+<a name="id1064332"></a>
             <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.when_to_implement">When
             to implement</a>
           </h6>
@@ -307,7 +307,7 @@
             constructible.
           </p>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.example"></a><h6>
-<a name="id1262698"></a>
+<a name="id1064380"></a>
             <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_container_from_value.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_container_from_value.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_container_from_value.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Store an Attribute Value into a Container after a Parser Produced a Value (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../assign_to.html" title="Store a Parsed Attribute Value (Qi)">
 <link rel="prev" href="assign_to_attribute_from_value.html" title="Store an Attribute Value after a Parser Produced a Value (Qi)">
@@ -28,7 +28,7 @@
           an Attribute Value into a Container after a Parser Produced a Value (Qi)</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_container_from_value.assign_to_container_from_value"></a><h6>
-<a name="id1262725"></a>
+<a name="id1064423"></a>
             <a class="link" href="assign_to_container_from_value.html#spirit.advanced.customize.assign_to.assign_to_container_from_value.assign_to_container_from_value">assign_to_container_from_value</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             is the attribute type).
           </p>
 <a name="spirit.advanced.customize.assign_to.assign_to_container_from_value.module_headers"></a><h6>
-<a name="id1262796"></a>
+<a name="id1064522"></a>
             <a class="link" href="assign_to_container_from_value.html#spirit.advanced.customize.assign_to.assign_to_container_from_value.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_container_from_value.namespace"></a><h6>
-<a name="id1262889"></a>
+<a name="id1064642"></a>
             <a class="link" href="assign_to_container_from_value.html#spirit.advanced.customize.assign_to.assign_to_container_from_value.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,7 +79,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_container_from_value.synopsis"></a><h6>
-<a name="id1262962"></a>
+<a name="id1064728"></a>
             <a class="link" href="assign_to_container_from_value.html#spirit.advanced.customize.assign_to.assign_to_container_from_value.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -89,7 +89,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.assign_to.assign_to_container_from_value.template_parameters"></a><h6>
-<a name="id1263101"></a>
+<a name="id1064902"></a>
             <a class="link" href="assign_to_container_from_value.html#spirit.advanced.customize.assign_to.assign_to_container_from_value.template_parameters">Template
             parameters</a>
           </h6>
@@ -178,7 +178,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_container_from_value.notation"></a><h6>
-<a name="id1263348"></a>
+<a name="id1065197"></a>
             <a class="link" href="assign_to_container_from_value.html#spirit.advanced.customize.assign_to.assign_to_container_from_value.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -206,7 +206,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.assign_to.assign_to_container_from_value.expression_semantics"></a><h6>
-<a name="id1263496"></a>
+<a name="id1065381"></a>
             <a class="link" href="assign_to_container_from_value.html#spirit.advanced.customize.assign_to.assign_to_container_from_value.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -245,7 +245,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_container_from_value.predefined_specializations"></a><h6>
-<a name="id1263625"></a>
+<a name="id1065536"></a>
             <a class="link" href="assign_to_container_from_value.html#spirit.advanced.customize.assign_to.assign_to_container_from_value.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -296,7 +296,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_container_from_value.when_to_implement"></a><h6>
-<a name="id1263753"></a>
+<a name="id1065685"></a>
             <a class="link" href="assign_to_container_from_value.html#spirit.advanced.customize.assign_to.assign_to_container_from_value.when_to_implement">When
             to implement</a>
           </h6>
@@ -308,7 +308,7 @@
             constructible.
           </p>
 <a name="spirit.advanced.customize.assign_to.assign_to_container_from_value.example"></a><h6>
-<a name="id1263785"></a>
+<a name="id1065732"></a>
             <a class="link" href="assign_to_container_from_value.html#spirit.advanced.customize.assign_to.assign_to_container_from_value.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/auto/create_generator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/auto/create_generator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/auto/create_generator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Define a Custom Attribute Mapping for a Generator</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auto.html" title="Create Components from Attributes">
 <link rel="prev" href="create_parser.html" title="Define a Custom Attribute Mapping for a Parser">
@@ -28,7 +28,7 @@
           a Custom Attribute Mapping for a Generator</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.auto.create_generator.create_generator"></a><h6>
-<a name="id1295635"></a>
+<a name="id1091636"></a>
             <a class="link" href="create_generator.html#spirit.advanced.customize.auto.create_generator.create_generator">create_generator</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
             given data type is encountered.
           </p>
 <a name="spirit.advanced.customize.auto.create_generator.module_headers"></a><h6>
-<a name="id1295684"></a>
+<a name="id1091707"></a>
             <a class="link" href="create_generator.html#spirit.advanced.customize.auto.create_generator.module_headers">Module
             Headers</a>
           </h6>
@@ -51,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.advanced.customize.auto.create_generator.namespace"></a><h6>
-<a name="id1295763"></a>
+<a name="id1091806"></a>
             <a class="link" href="create_generator.html#spirit.advanced.customize.auto.create_generator.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -68,7 +68,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.auto.create_generator.synopsis"></a><h6>
-<a name="id1295841"></a>
+<a name="id1091891"></a>
             <a class="link" href="create_generator.html#spirit.advanced.customize.auto.create_generator.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -79,7 +79,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.auto.create_generator.template_parameters"></a><h6>
-<a name="id1295966"></a>
+<a name="id1092045"></a>
             <a class="link" href="create_generator.html#spirit.advanced.customize.auto.create_generator.template_parameters">Template
             parameters</a>
           </h6>
@@ -148,7 +148,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.auto.create_generator.notation"></a><h6>
-<a name="id1296140"></a>
+<a name="id1092245"></a>
             <a class="link" href="create_generator.html#spirit.advanced.customize.auto.create_generator.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -161,7 +161,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.auto.create_generator.expression_semantics"></a><h6>
-<a name="id1296181"></a>
+<a name="id1092292"></a>
             <a class="link" href="create_generator.html#spirit.advanced.customize.auto.create_generator.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -212,7 +212,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.auto.create_generator.predefined_specializations"></a><h6>
-<a name="id1296326"></a>
+<a name="id1092463"></a>
             <a class="link" href="create_generator.html#spirit.advanced.customize.auto.create_generator.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -234,7 +234,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.auto.create_generator.when_to_implement"></a><h6>
-<a name="id1296367"></a>
+<a name="id1092522"></a>
             <a class="link" href="create_generator.html#spirit.advanced.customize.auto.create_generator.when_to_implement">When
             to implement</a>
           </h6>
@@ -246,7 +246,7 @@
             functions based on the automatic creation of the matching generator type).
           </p>
 <a name="spirit.advanced.customize.auto.create_generator.example"></a><h6>
-<a name="id1296416"></a>
+<a name="id1092594"></a>
             <a class="link" href="create_generator.html#spirit.advanced.customize.auto.create_generator.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/auto/create_parser.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/auto/create_parser.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/auto/create_parser.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Define a Custom Attribute Mapping for a Parser</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auto.html" title="Create Components from Attributes">
 <link rel="prev" href="../auto.html" title="Create Components from Attributes">
@@ -28,7 +28,7 @@
           a Custom Attribute Mapping for a Parser</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.auto.create_parser.create_parser"></a><h6>
-<a name="id1294807"></a>
+<a name="id1090605"></a>
             <a class="link" href="create_parser.html#spirit.advanced.customize.auto.create_parser.create_parser">create_parser</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
             data type is encountered.
           </p>
 <a name="spirit.advanced.customize.auto.create_parser.module_headers"></a><h6>
-<a name="id1294859"></a>
+<a name="id1090676"></a>
             <a class="link" href="create_parser.html#spirit.advanced.customize.auto.create_parser.module_headers">Module
             Headers</a>
           </h6>
@@ -51,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.advanced.customize.auto.create_parser.namespace"></a><h6>
-<a name="id1294935"></a>
+<a name="id1090776"></a>
             <a class="link" href="create_parser.html#spirit.advanced.customize.auto.create_parser.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -68,7 +68,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.auto.create_parser.synopsis"></a><h6>
-<a name="id1295009"></a>
+<a name="id1090860"></a>
             <a class="link" href="create_parser.html#spirit.advanced.customize.auto.create_parser.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -79,7 +79,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.auto.create_parser.template_parameters"></a><h6>
-<a name="id1295131"></a>
+<a name="id1091013"></a>
             <a class="link" href="create_parser.html#spirit.advanced.customize.auto.create_parser.template_parameters">Template
             parameters</a>
           </h6>
@@ -148,7 +148,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.auto.create_parser.notation"></a><h6>
-<a name="id1295303"></a>
+<a name="id1091213"></a>
             <a class="link" href="create_parser.html#spirit.advanced.customize.auto.create_parser.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -161,7 +161,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.auto.create_parser.expression_semantics"></a><h6>
-<a name="id1295341"></a>
+<a name="id1091260"></a>
             <a class="link" href="create_parser.html#spirit.advanced.customize.auto.create_parser.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -211,7 +211,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.auto.create_parser.predefined_specializations"></a><h6>
-<a name="id1295486"></a>
+<a name="id1091431"></a>
             <a class="link" href="create_parser.html#spirit.advanced.customize.auto.create_parser.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -233,7 +233,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.auto.create_parser.when_to_implement"></a><h6>
-<a name="id1295529"></a>
+<a name="id1091488"></a>
             <a class="link" href="create_parser.html#spirit.advanced.customize.auto.create_parser.when_to_implement">When
             to implement</a>
           </h6>
@@ -245,7 +245,7 @@
             based on the automatic creation of the matching parser type).
           </p>
 <a name="spirit.advanced.customize.auto.create_parser.example"></a><h6>
-<a name="id1295581"></a>
+<a name="id1091560"></a>
             <a class="link" href="create_parser.html#spirit.advanced.customize.auto.create_parser.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Re-Initialize an Attribute Value before Parsing (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
 <link rel="prev" href="store_value/push_back.html" title="Store a Parsed Attribute Value into a Container (Qi)">
@@ -28,7 +28,7 @@
         an Attribute Value before Parsing (Qi)</a>
 </h4></div></div></div>
 <a name="spirit.advanced.customize.clear_value.clear_value"></a><h6>
-<a name="id1268670"></a>
+<a name="id1070087"></a>
           <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.clear_value">clear_value</a>
         </h6>
 <p>
@@ -43,7 +43,7 @@
           parser.
         </p>
 <a name="spirit.advanced.customize.clear_value.module_headers"></a><h6>
-<a name="id1268717"></a>
+<a name="id1070156"></a>
           <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.module_headers">Module
           Headers</a>
         </h6>
@@ -64,7 +64,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.clear_value.namespace"></a><h6>
-<a name="id1268802"></a>
+<a name="id1070266"></a>
           <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.namespace">Namespace</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -81,7 +81,7 @@
                 </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.clear_value.synopsis"></a><h6>
-<a name="id1268875"></a>
+<a name="id1070350"></a>
           <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -91,7 +91,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.clear_value.template_parameters"></a><h6>
-<a name="id1268982"></a>
+<a name="id1070482"></a>
           <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.template_parameters">Template
           parameters</a>
         </h6>
@@ -160,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.clear_value.notation"></a><h6>
-<a name="id1269156"></a>
+<a name="id1070683"></a>
           <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.notation">Notation</a>
         </h6>
 <div class="variablelist">
@@ -181,7 +181,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.clear_value.expression_semantics"></a><h6>
-<a name="id1269252"></a>
+<a name="id1070796"></a>
           <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.expression_semantics">Expression
           Semantics</a>
         </h6>
@@ -220,7 +220,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.clear_value.predefined_specializations"></a><h6>
-<a name="id1269371"></a>
+<a name="id1070930"></a>
           <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.predefined_specializations">Predefined
           Specializations</a>
         </h6>
@@ -331,7 +331,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.clear_value.when_to_implement"></a><h6>
-<a name="id1269728"></a>
+<a name="id1071352"></a>
           <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.when_to_implement">When
           to Implement</a>
         </h6>
@@ -344,7 +344,7 @@
           types not exposing a member function <code class="computeroutput"><span class="identifier">clear</span><span class="special">()</span></code>.
         </p>
 <a name="spirit.advanced.customize.clear_value.example"></a><h6>
-<a name="id1269763"></a>
+<a name="id1071404"></a>
           <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.example">Example</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Extract an Attribute Value to Generate Output (Karma)</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
 <link rel="prev" href="clear_value.html" title="Re-Initialize an Attribute Value before Parsing (Qi)">
@@ -28,7 +28,7 @@
         Attribute Value to Generate Output (Karma)</a>
 </h4></div></div></div>
 <a name="spirit.advanced.customize.extract_from.extract_from"></a><h6>
-<a name="id1271176"></a>
+<a name="id1071443"></a>
           <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.extract_from">extract_from</a>
         </h6>
 <p>
@@ -49,7 +49,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.extract_from.module_headers"></a><h6>
-<a name="id1271218"></a>
+<a name="id1071502"></a>
           <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.module_headers">Module
           Headers</a>
         </h6>
@@ -70,7 +70,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.extract_from.namespace"></a><h6>
-<a name="id1271310"></a>
+<a name="id1071621"></a>
           <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.namespace">Namespace</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -87,7 +87,7 @@
                 </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.extract_from.synopsis"></a><h6>
-<a name="id1271383"></a>
+<a name="id1071705"></a>
           <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Exposed</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -100,7 +100,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.extract_from.template_parameters"></a><h6>
-<a name="id1271572"></a>
+<a name="id1071936"></a>
           <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.template_parameters">Template
           parameters</a>
         </h6>
@@ -199,7 +199,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.extract_from.notation"></a><h6>
-<a name="id1271818"></a>
+<a name="id1072220"></a>
           <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.notation">Notation</a>
         </h6>
 <div class="variablelist">
@@ -220,7 +220,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.extract_from.expression_semantics"></a><h6>
-<a name="id1271905"></a>
+<a name="id1072321"></a>
           <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.expression_semantics">Expression
           Semantics</a>
         </h6>
@@ -259,7 +259,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.extract_from.predefined_specializations"></a><h6>
-<a name="id1272024"></a>
+<a name="id1072455"></a>
           <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.predefined_specializations">Predefined
           Specializations</a>
         </h6>
@@ -353,7 +353,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.extract_from.when_to_implement"></a><h6>
-<a name="id1272374"></a>
+<a name="id1072894"></a>
           <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.when_to_implement">When
           to implement</a>
         </h6>
@@ -365,7 +365,7 @@
           and is not copy constructible.
         </p>
 <a name="spirit.advanced.customize.extract_from.example"></a><h6>
-<a name="id1272408"></a>
+<a name="id1072941"></a>
           <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.example">Example</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/handles_container.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/handles_container.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/handles_container.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,7 +1,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Determine Whether a Component Handles Container Attributes (Karma)</title>
+<title>Determine Whether a Component Handles Container Attributes (Qi and Karma)</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
@@ -22,10 +22,340 @@
 <div class="spirit-nav">
 <a accesskey="p" href="is_container.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.advanced.customize.handles_container"></a><a class="link" href="handles_container.html" title="Determine Whether a Component Handles Container Attributes (Karma)">Determine
- Whether a Component Handles Container Attributes (Karma)</a>
-</h4></div></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.advanced.customize.handles_container"></a><a class="link" href="handles_container.html" title="Determine Whether a Component Handles Container Attributes (Qi and Karma)">Determine
+ Whether a Component Handles Container Attributes (Qi and Karma)</a>
+</h4></div></div></div>
+<a name="spirit.advanced.customize.handles_container.handles_container"></a><h6>
+<a name="id1057284"></a>
+ <a class="link" href="handles_container.html#spirit.advanced.customize.handles_container.handles_container">handles_container</a>
+ </h6>
+<p>
+ The template <code class="computeroutput"><span class="identifier">handles_container</span></code>
+ is a template meta-function used as an attribute customization point. It
+ is invoked by the <span class="emphasis"><em>Qi</em></span> <a class="link" href="../../qi/reference/operator/sequence.html" title="Sequence Parser (a &gt;&gt; b)">Sequence</a>
+ (<code class="computeroutput"><span class="special">&gt;&gt;</span></code>) and <span class="emphasis"><em>Karma</em></span>
+ <a class="link" href="../../karma/reference/operator/sequence.html" title="Sequence Generator (a &lt;&lt; b)">Sequence (<code class="computeroutput"><span class="special">&lt;&lt;</span></code>)</a> operators in order to determine
+ whether a sequence element (component) handles container attributes directly.
+ This customization point is invoked for container attributes only, and
+ only if the sequence is compatible with the supplied container attribute.
+ </p>
+<p>
+ If a component, which is part of a sequence is able to handle a container
+ attribute directly, the sequence passes the attribute to the component
+ without any additional action. In <span class="emphasis"><em>Spirit.Qi</em></span> the component
+ uses the attribute to directly store all matched attributes. In <span class="emphasis"><em>Spirit.Karma</em></span>
+ the generator component extracts the attributes needed for output generation
+ directly from this attribute.
+ </p>
+<p>
+ If a component, which is part of a sequence is not able to handle container
+ attributes, in <span class="emphasis"><em>Spirit.Qi</em></span> the sequence passes a new
+ instance of the container attribute's <code class="computeroutput"><span class="identifier">value_type</span></code>
+ to the parser component, inserting the result into the attribute on behalf
+ of the parser component. In <span class="emphasis"><em>Spirit.Karma</em></span> the sequence
+ extracts the next container element on behalf of the generator component
+ and passing it the extracted value.
+ </p>
+<a name="spirit.advanced.customize.handles_container.header"></a><h6>
+<a name="id1057403"></a>
+ <a class="link" href="handles_container.html#spirit.advanced.customize.handles_container.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">handles_container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<p>
+ Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ This header file does not need to be included directly by any user program
+ as it is normally included by other Spirit header files relying on its
+ content.
+ </p></td></tr>
+</table></div>
+<a name="spirit.advanced.customize.handles_container.namespace"></a><h6>
+<a name="id1057513"></a>
+ <a class="link" href="handles_container.html#spirit.advanced.customize.handles_container.namespace">Namespace</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th>
+ <p>
+ Name
+ </p>
+ </th></tr></thead>
+<tbody><tr><td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
+ </p>
+ </td></tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.handles_container.synopsis"></a><h6>
+<a name="id1057597"></a>
+ <a class="link" href="handles_container.html#spirit.advanced.customize.handles_container.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Component</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Attribute</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">handles_container</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="special">&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<a name="spirit.advanced.customize.handles_container.template_parameters"></a><h6>
+<a name="id1057734"></a>
+ <a class="link" href="handles_container.html#spirit.advanced.customize.handles_container.template_parameters">Template
+ parameters</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Default
+ </p>
+ </th>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Component</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The component type <code class="computeroutput"><span class="identifier">Component</span></code>
+ which needs to be tested whether it handles container attributes
+ directly.
+ </p>
+ </td>
+<td>
+ <p>
+ none
+ </p>
+ </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attribute</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The attribute type <code class="computeroutput"><span class="identifier">Attribute</span></code>
+ as passed to the sequence operator.
+ </p>
+ </td>
+<td>
+ <p>
+ [<code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <code class="computeroutput"><span class="identifier">is_container</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.handles_container.notation"></a><h6>
+<a name="id1057969"></a>
+ <a class="link" href="handles_container.html#spirit.advanced.customize.handles_container.notation">Notation</a>
+ </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Component</span></code></span></dt>
+<dd><p>
+ A comonent type to be tested whether it directly handles container
+ attributes in the context of sequences.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Attribute</span></code></span></dt>
+<dd><p>
+ A container attribute type as passed to the sequence.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T1</span></code>, <code class="computeroutput"><span class="identifier">T2</span></code>, ...</span></dt>
+<dd><p>
+ Arbitrary types
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.handles_container.expression_semantics"></a><h6>
+<a name="id1058070"></a>
+ <a class="link" href="handles_container.html#spirit.advanced.customize.handles_container.expression_semantics">Expression
+ Semantics</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Semantics
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">handles_container</span><span class="special">&lt;</span><span class="identifier">Component</span><span class="special">,</span> <span class="identifier">Attribute</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Result of the metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+ if a given component type <code class="computeroutput"><span class="identifier">Component</span></code>,
+ handles container attributes directly, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+ otherwise (See <a href="../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
+ Boolean Constant</a>).
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.handles_container.predefined_specializations"></a><h6>
+<a name="id1058237"></a>
+ <a class="link" href="handles_container.html#spirit.advanced.customize.handles_container.predefined_specializations">Predefined
+ Specializations</a>
+ </h6>
+<p>
+ Spirit predefines specializations
+ of this customization point for several types. The following table lists
+ those types together with the conditions for which the corresponding specializations
+ will evaluate to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code> (see <a href="../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
+ Boolean Constant</a>):
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Template Parameters
+ </p>
+ </th>
+<th>
+ <p>
+ Value
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Component</span></code>, <code class="computeroutput"><span class="identifier">Attribute</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Always returns <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+ (the default).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span>
+ <span class="identifier">T1</span><span class="special">,</span>
+ <span class="identifier">T2</span><span class="special">,</span>
+ <span class="identifier">T3</span><span class="special">,</span>
+ <span class="identifier">T4</span><span class="special">&gt;</span></code>,
+ <code class="computeroutput"><span class="identifier">Attribute</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>, where <code class="computeroutput"><span class="identifier">A</span></code>
+ is the attribute exposed by the rule (<span class="emphasis"><em>Spirit.Qi</em></span>
+ and <span class="emphasis"><em>Spirit.Karma</em></span>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span>
+ <span class="identifier">T1</span><span class="special">,</span>
+ <span class="identifier">T2</span><span class="special">,</span>
+ <span class="identifier">T3</span><span class="special">,</span>
+ <span class="identifier">T4</span><span class="special">&gt;</span></code>,
+ <code class="computeroutput"><span class="identifier">Attribute</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>, where <code class="computeroutput"><span class="identifier">A</span></code>
+ is the attribute exposed by the grammar (<span class="emphasis"><em>Spirit.Qi</em></span>
+ and <span class="emphasis"><em>Spirit.Karma</em></span>).
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.handles_container.when_to_implement"></a><h6>
+<a name="id1058653"></a>
+ <a class="link" href="handles_container.html#spirit.advanced.customize.handles_container.when_to_implement">When
+ to implement</a>
+ </h6>
+<p>
+ The customization point <code class="computeroutput"><span class="identifier">handles_container</span></code>
+ needs to be implemented for a specific type whenever this type directly
+ handles container attributes. It is applicable for parsers (<span class="emphasis"><em>Spirit.Qi</em></span>)
+ and generators (<span class="emphasis"><em>Spirit.Karma</em></span>). It will have to be
+ implemented under rare circumstances only.
+ </p>
+<a name="spirit.advanced.customize.handles_container.example"></a><h6>
+<a name="id1058697"></a>
+ <a class="link" href="handles_container.html#spirit.advanced.customize.handles_container.example">Example</a>
+ </h6>
+<p>
+ TBD
+ </p>
+</div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2001-2010 Joel de Guzman, Hartmut Kaiser<p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/is_container.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/is_container.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/is_container.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,11 +3,11 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Determine if a Type Should be Treated as a Container (Qi and Karma)</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
 <link rel="prev" href="../customize.html" title="Customization of Spirit's Attribute Handling">
-<link rel="next" href="handles_container.html" title="Determine Whether a Component Handles Container Attributes (Karma)">
+<link rel="next" href="handles_container.html" title="Determine Whether a Component Handles Container Attributes (Qi and Karma)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -28,7 +28,7 @@
         a Type Should be Treated as a Container (Qi and Karma)</a>
 </h4></div></div></div>
 <a name="spirit.advanced.customize.is_container.is_container"></a><h6>
-<a name="id1252392"></a>
+<a name="id1054887"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.is_container">is_container</a>
         </h6>
 <p>
@@ -40,7 +40,7 @@
           whether a supplied attribute can potentially be treated as a container.
         </p>
 <a name="spirit.advanced.customize.is_container.header"></a><h6>
-<a name="id1252447"></a>
+<a name="id1054966"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -60,7 +60,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.is_container.namespace"></a><h6>
-<a name="id1252532"></a>
+<a name="id1055076"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.namespace">Namespace</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -77,7 +77,7 @@
                 </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.is_container.synopsis"></a><h6>
-<a name="id1252606"></a>
+<a name="id1055161"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -87,7 +87,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.is_container.template_parameters"></a><h6>
-<a name="id1252704"></a>
+<a name="id1055281"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.template_parameters">Template
           parameters</a>
         </h6>
@@ -156,7 +156,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.is_container.notation"></a><h6>
-<a name="id1252878"></a>
+<a name="id1055482"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.notation">Notation</a>
         </h6>
 <div class="variablelist">
@@ -173,7 +173,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.is_container.expression_semantics"></a><h6>
-<a name="id1252946"></a>
+<a name="id1055561"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.expression_semantics">Expression
           Semantics</a>
         </h6>
@@ -212,7 +212,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.is_container.predefined_specializations"></a><h6>
-<a name="id1253080"></a>
+<a name="id1055716"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.predefined_specializations">Predefined
           Specializations</a>
         </h6>
@@ -301,7 +301,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.is_container.when_to_implement"></a><h6>
-<a name="id1253498"></a>
+<a name="id1056232"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.when_to_implement">When
           to implement</a>
         </h6>
@@ -323,7 +323,7 @@
           for any meaningful operation on the component <code class="computeroutput"><span class="identifier">a</span></code>.
         </p>
 <a name="spirit.advanced.customize.is_container.related_attribute_customization_points"></a><h6>
-<a name="id1255058"></a>
+<a name="id1056439"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.related_attribute_customization_points">Related
           Attribute Customization Points</a>
         </h6>
@@ -479,7 +479,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.is_container.example"></a><h6>
-<a name="id1255649"></a>
+<a name="id1057207"></a>
           <a class="link" href="is_container.html#spirit.advanced.customize.is_container.example">Example</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/begin_container.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/begin_container.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/begin_container.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Get the Iterator pointing to the Begin of a Container Attribute</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../iterate.html" title="Extract Attribute Values to Generate Output from a Container (Karma)">
 <link rel="prev" href="container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)">
@@ -28,7 +28,7 @@
           the Iterator pointing to the Begin of a Container Attribute</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.begin_container.begin_container"></a><h6>
-<a name="id1275492"></a>
+<a name="id1076420"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.begin_container">begin_container</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             holding the attributes to generate output from.
           </p>
 <a name="spirit.advanced.customize.iterate.begin_container.module_headers"></a><h6>
-<a name="id1275561"></a>
+<a name="id1076519"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.begin_container.namespace"></a><h6>
-<a name="id1275648"></a>
+<a name="id1076631"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,7 +79,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.begin_container.synopsis"></a><h6>
-<a name="id1275726"></a>
+<a name="id1076716"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -90,7 +90,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.iterate.begin_container.template_parameters"></a><h6>
-<a name="id1277628"></a>
+<a name="id1076872"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.template_parameters">Template
             parameters</a>
           </h6>
@@ -160,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.begin_container.notation"></a><h6>
-<a name="id1277802"></a>
+<a name="id1077072"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -177,7 +177,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.iterate.begin_container.expression_semantics"></a><h6>
-<a name="id1277869"></a>
+<a name="id1077151"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -236,7 +236,7 @@
               </li>
 </ul></div>
 <a name="spirit.advanced.customize.iterate.begin_container.predefined_specializations"></a><h6>
-<a name="id1278048"></a>
+<a name="id1077379"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -303,7 +303,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.begin_container.when_to_implement"></a><h6>
-<a name="id1278238"></a>
+<a name="id1077603"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.when_to_implement">When
             to implement</a>
           </h6>
@@ -318,7 +318,7 @@
             would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
           </p>
 <a name="spirit.advanced.customize.iterate.begin_container.related_attribute_customization_points"></a><h6>
-<a name="id1278310"></a>
+<a name="id1077704"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
@@ -450,7 +450,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.begin_container.example"></a><h6>
-<a name="id1278813"></a>
+<a name="id1078336"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/compare_iterators.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/compare_iterators.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/compare_iterators.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Compare two Iterator pointing into a Container Attribute for Equality</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../iterate.html" title="Extract Attribute Values to Generate Output from a Container (Karma)">
 <link rel="prev" href="deref_iterator.html" title="Dereference the Iterator pointing into a Container Attribute">
@@ -28,7 +28,7 @@
           two Iterator pointing into a Container Attribute for Equality</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.compare_iterators"></a><h6>
-<a name="id1291825"></a>
+<a name="id1088574"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.compare_iterators">compare_iterators</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
             the end of the element sequence to generate output for.
           </p>
 <a name="spirit.advanced.customize.iterate.compare_iterators.module_headers"></a><h6>
-<a name="id1291922"></a>
+<a name="id1088720"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.module_headers">Module
             Headers</a>
           </h6>
@@ -63,7 +63,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.namespace"></a><h6>
-<a name="id1292010"></a>
+<a name="id1088831"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -80,7 +80,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.synopsis"></a><h6>
-<a name="id1292088"></a>
+<a name="id1088916"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -90,7 +90,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.iterate.compare_iterators.template_parameters"></a><h6>
-<a name="id1292221"></a>
+<a name="id1089080"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.template_parameters">Template
             parameters</a>
           </h6>
@@ -160,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.notation"></a><h6>
-<a name="id1292404"></a>
+<a name="id1089296"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -181,7 +181,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.expression_semantics"></a><h6>
-<a name="id1292506"></a>
+<a name="id1089416"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -218,7 +218,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.predefined_specializations"></a><h6>
-<a name="id1292628"></a>
+<a name="id1089560"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -274,7 +274,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.when_to_implement"></a><h6>
-<a name="id1292774"></a>
+<a name="id1089736"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.when_to_implement">When
             to implement</a>
           </h6>
@@ -290,7 +290,7 @@
             (i.e. <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code> would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
           </p>
 <a name="spirit.advanced.customize.iterate.compare_iterators.related_attribute_customization_points"></a><h6>
-<a name="id1292846"></a>
+<a name="id1089839"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
@@ -422,7 +422,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.example"></a><h6>
-<a name="id1294715"></a>
+<a name="id1090473"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/container_iterator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/container_iterator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/container_iterator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Determine the Type of the Iterator of a Container (Karma)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../iterate.html" title="Extract Attribute Values to Generate Output from a Container (Karma)">
 <link rel="prev" href="../iterate.html" title="Extract Attribute Values to Generate Output from a Container (Karma)">
@@ -28,7 +28,7 @@
           the Type of the Iterator of a Container (Karma)</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.container_iterator"></a><h6>
-<a name="id1272445"></a>
+<a name="id1072994"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.container_iterator">container_iterator</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             the items to be exposed as the elements of a container.
           </p>
 <a name="spirit.advanced.customize.iterate.container_iterator.module_headers"></a><h6>
-<a name="id1272514"></a>
+<a name="id1073093"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.namespace"></a><h6>
-<a name="id1272601"></a>
+<a name="id1073204"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,7 +79,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.synopsis"></a><h6>
-<a name="id1272679"></a>
+<a name="id1073289"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -89,7 +89,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.iterate.container_iterator.template_parameters"></a><h6>
-<a name="id1272778"></a>
+<a name="id1073411"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.template_parameters">Template
             parameters</a>
           </h6>
@@ -158,7 +158,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.notation"></a><h6>
-<a name="id1272952"></a>
+<a name="id1073611"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -171,7 +171,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.iterate.container_iterator.expression_semantics"></a><h6>
-<a name="id1272992"></a>
+<a name="id1073658"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -229,7 +229,7 @@
               </li>
 </ul></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.predefined_specializations"></a><h6>
-<a name="id1273151"></a>
+<a name="id1073857"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -297,7 +297,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.when_to_implement"></a><h6>
-<a name="id1273644"></a>
+<a name="id1074083"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.when_to_implement">When
             to implement</a>
           </h6>
@@ -312,7 +312,7 @@
             would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
           </p>
 <a name="spirit.advanced.customize.iterate.container_iterator.related_attribute_customization_points"></a><h6>
-<a name="id1273716"></a>
+<a name="id1074185"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
@@ -444,7 +444,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.example"></a><h6>
-<a name="id1274219"></a>
+<a name="id1074817"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/deref_iterator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/deref_iterator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/deref_iterator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Dereference the Iterator pointing into a Container Attribute</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../iterate.html" title="Extract Attribute Values to Generate Output from a Container (Karma)">
 <link rel="prev" href="next_iterator.html" title="Increment the Iterator pointing into a Container Attribute">
@@ -28,7 +28,7 @@
           the Iterator pointing into a Container Attribute</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.deref_iterator"></a><h6>
-<a name="id1285516"></a>
+<a name="id1084903"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.deref_iterator">deref_iterator</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             holding the attributes to generate output from.
           </p>
 <a name="spirit.advanced.customize.iterate.deref_iterator.module_headers"></a><h6>
-<a name="id1288938"></a>
+<a name="id1085002"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.namespace"></a><h6>
-<a name="id1289028"></a>
+<a name="id1085112"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,7 +79,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.synopsis"></a><h6>
-<a name="id1289106"></a>
+<a name="id1085197"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -90,7 +90,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.iterate.deref_iterator.template_parameters"></a><h6>
-<a name="id1289238"></a>
+<a name="id1085360"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.template_parameters">Template
             parameters</a>
           </h6>
@@ -160,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.notation"></a><h6>
-<a name="id1289422"></a>
+<a name="id1085577"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -181,7 +181,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.expression_semantics"></a><h6>
-<a name="id1289517"></a>
+<a name="id1085687"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -233,7 +233,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.predefined_specializations"></a><h6>
-<a name="id1289662"></a>
+<a name="id1085859"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -293,7 +293,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.when_to_implement"></a><h6>
-<a name="id1289884"></a>
+<a name="id1086138"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.when_to_implement">When
             to implement</a>
           </h6>
@@ -309,7 +309,7 @@
             (i.e. <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code> would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
           </p>
 <a name="spirit.advanced.customize.iterate.deref_iterator.related_attribute_customization_points"></a><h6>
-<a name="id1289956"></a>
+<a name="id1086239"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
@@ -441,7 +441,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.example"></a><h6>
-<a name="id1290459"></a>
+<a name="id1086873"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/end_container.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/end_container.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/end_container.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Get the Iterator pointing to the End of a Container Attribute</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../iterate.html" title="Extract Attribute Values to Generate Output from a Container (Karma)">
 <link rel="prev" href="begin_container.html" title="Get the Iterator pointing to the Begin of a Container Attribute">
@@ -28,7 +28,7 @@
           the Iterator pointing to the End of a Container Attribute</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.end_container.end_container"></a><h6>
-<a name="id1278872"></a>
+<a name="id1078409"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.end_container">end_container</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             the attributes to generate output from.
           </p>
 <a name="spirit.advanced.customize.iterate.end_container.module_headers"></a><h6>
-<a name="id1278945"></a>
+<a name="id1078508"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.namespace"></a><h6>
-<a name="id1279035"></a>
+<a name="id1078619"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,7 +79,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.synopsis"></a><h6>
-<a name="id1279113"></a>
+<a name="id1078704"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -90,7 +90,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.iterate.end_container.template_parameters"></a><h6>
-<a name="id1279239"></a>
+<a name="id1078859"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.template_parameters">Template
             parameters</a>
           </h6>
@@ -160,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.notation"></a><h6>
-<a name="id1279413"></a>
+<a name="id1079060"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -177,7 +177,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.iterate.end_container.expression_semantics"></a><h6>
-<a name="id1279480"></a>
+<a name="id1079139"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -216,7 +216,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.predefined_specializations"></a><h6>
-<a name="id1279596"></a>
+<a name="id1079280"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -283,7 +283,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.when_to_implement"></a><h6>
-<a name="id1280892"></a>
+<a name="id1079504"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.when_to_implement">When
             to implement</a>
           </h6>
@@ -298,7 +298,7 @@
             would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
           </p>
 <a name="spirit.advanced.customize.iterate.end_container.related_attribute_customization_points"></a><h6>
-<a name="id1280964"></a>
+<a name="id1079605"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
@@ -430,7 +430,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.example"></a><h6>
-<a name="id1281464"></a>
+<a name="id1080239"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/next_iterator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/next_iterator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/next_iterator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Increment the Iterator pointing into a Container Attribute</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../iterate.html" title="Extract Attribute Values to Generate Output from a Container (Karma)">
 <link rel="prev" href="end_container.html" title="Get the Iterator pointing to the End of a Container Attribute">
@@ -28,7 +28,7 @@
           the Iterator pointing into a Container Attribute</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.next_iterator.next_iterator"></a><h6>
-<a name="id1281520"></a>
+<a name="id1080313"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.next_iterator">next_iterator</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             holding the attributes to generate output from.
           </p>
 <a name="spirit.advanced.customize.iterate.next_iterator.module_headers"></a><h6>
-<a name="id1281594"></a>
+<a name="id1080412"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.next_iterator.namespace"></a><h6>
-<a name="id1281684"></a>
+<a name="id1080523"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,7 +79,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.next_iterator.synopsis"></a><h6>
-<a name="id1281762"></a>
+<a name="id1080608"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -89,7 +89,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.iterate.next_iterator.template_parameters"></a><h6>
-<a name="id1281868"></a>
+<a name="id1080740"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.template_parameters">Template
             parameters</a>
           </h6>
@@ -159,7 +159,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.next_iterator.notation"></a><h6>
-<a name="id1282052"></a>
+<a name="id1080956"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -180,7 +180,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.iterate.next_iterator.expression_semantics"></a><h6>
-<a name="id1282147"></a>
+<a name="id1081067"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -216,7 +216,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.next_iterator.predefined_specializations"></a><h6>
-<a name="id1282245"></a>
+<a name="id1081182"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -272,7 +272,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.next_iterator.when_to_implement"></a><h6>
-<a name="id1282381"></a>
+<a name="id1081341"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.when_to_implement">When
             to implement</a>
           </h6>
@@ -288,7 +288,7 @@
             (i.e. <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code> would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
           </p>
 <a name="spirit.advanced.customize.iterate.next_iterator.related_attribute_customization_points"></a><h6>
-<a name="id1282453"></a>
+<a name="id1081443"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
@@ -420,7 +420,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.next_iterator.example"></a><h6>
-<a name="id1282953"></a>
+<a name="id1082077"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Determine the Type to be Stored in a Container (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../store_value.html" title="Store Parsed Attribute Values into a Container (Qi)">
 <link rel="prev" href="../store_value.html" title="Store Parsed Attribute Values into a Container (Qi)">
@@ -28,7 +28,7 @@
           the Type to be Stored in a Container (Qi)</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.store_value.container_value.container_value"></a><h6>
-<a name="id1263865"></a>
+<a name="id1065852"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.container_value">container_value</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             the type to store in a container.
           </p>
 <a name="spirit.advanced.customize.store_value.container_value.module_headers"></a><h6>
-<a name="id1263912"></a>
+<a name="id1065920"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.module_headers">Module
             Headers</a>
           </h6>
@@ -60,7 +60,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.namespace"></a><h6>
-<a name="id1264000"></a>
+<a name="id1066030"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -77,7 +77,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.synopsis"></a><h6>
-<a name="id1264898"></a>
+<a name="id1066115"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -87,7 +87,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.store_value.container_value.template_parameters"></a><h6>
-<a name="id1264996"></a>
+<a name="id1066238"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.template_parameters">Template
             parameters</a>
           </h6>
@@ -156,7 +156,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.notation"></a><h6>
-<a name="id1265170"></a>
+<a name="id1066439"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -173,7 +173,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.store_value.container_value.expression_semantics"></a><h6>
-<a name="id1265238"></a>
+<a name="id1066518"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -209,7 +209,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.predefined_specializations"></a><h6>
-<a name="id1265333"></a>
+<a name="id1066628"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -296,7 +296,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.when_to_implement"></a><h6>
-<a name="id1265669"></a>
+<a name="id1067041"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.when_to_implement">When
             to implement</a>
           </h6>
@@ -318,7 +318,7 @@
             stands for any meaningful operation on the component <code class="computeroutput"><span class="identifier">a</span></code>.
           </p>
 <a name="spirit.advanced.customize.store_value.container_value.related_attribute_customization_points"></a><h6>
-<a name="id1265787"></a>
+<a name="id1067197"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
@@ -377,7 +377,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.example"></a><h6>
-<a name="id1265934"></a>
+<a name="id1067378"></a>
             <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Store a Parsed Attribute Value into a Container (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../store_value.html" title="Store Parsed Attribute Values into a Container (Qi)">
 <link rel="prev" href="container_value.html" title="Determine the Type to be Stored in a Container (Qi)">
@@ -28,7 +28,7 @@
           a Parsed Attribute Value into a Container (Qi)</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.store_value.push_back.push_back_container"></a><h6>
-<a name="id1266182"></a>
+<a name="id1067693"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.push_back_container">push_back_container</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             to store a parsed attribute value into a container.
           </p>
 <a name="spirit.advanced.customize.store_value.push_back.module_headers"></a><h6>
-<a name="id1266231"></a>
+<a name="id1067760"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.module_headers">Module
             Headers</a>
           </h6>
@@ -60,7 +60,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.namespace"></a><h6>
-<a name="id1266321"></a>
+<a name="id1067872"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -77,7 +77,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.synopsis"></a><h6>
-<a name="id1266399"></a>
+<a name="id1067957"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -87,7 +87,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.store_value.push_back.template_parameters"></a><h6>
-<a name="id1266540"></a>
+<a name="id1068131"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.template_parameters">Template
             parameters</a>
           </h6>
@@ -176,7 +176,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.notation"></a><h6>
-<a name="id1266771"></a>
+<a name="id1068403"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -209,7 +209,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.store_value.push_back.expression_semantics"></a><h6>
-<a name="id1266906"></a>
+<a name="id1068564"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -253,7 +253,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.predefined_specializations"></a><h6>
-<a name="id1267604"></a>
+<a name="id1068752"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -347,7 +347,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.when_to_implement"></a><h6>
-<a name="id1268017"></a>
+<a name="id1069267"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.when_to_implement">When
             to Implement</a>
           </h6>
@@ -369,7 +369,7 @@
             stands for any meaningful operation on the component <code class="computeroutput"><span class="identifier">a</span></code>.
           </p>
 <a name="spirit.advanced.customize.store_value.push_back.related_attribute_customization_points"></a><h6>
-<a name="id1268168"></a>
+<a name="id1069462"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
@@ -428,7 +428,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.example"></a><h6>
-<a name="id1268313"></a>
+<a name="id1069642"></a>
             <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/transform.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/transform.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/transform.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,10 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Transform an Attribute to a Different Type (Qi and Karma)</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
-<link rel="prev" href="handles_container.html" title="Determine Whether a Component Handles Container Attributes (Karma)">
+<link rel="prev" href="handles_container.html" title="Determine Whether a Component Handles Container Attributes (Qi and Karma)">
 <link rel="next" href="assign_to.html" title="Store a Parsed Attribute Value (Qi)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -28,7 +28,7 @@
         to a Different Type (Qi and Karma)</a>
 </h4></div></div></div>
 <a name="spirit.advanced.customize.transform.transform_attribute"></a><h6>
-<a name="id1255715"></a>
+<a name="id1058735"></a>
           <a class="link" href="transform.html#spirit.advanced.customize.transform.transform_attribute">transform_attribute</a>
         </h6>
 <p>
@@ -55,7 +55,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.transform.module_headers"></a><h6>
-<a name="id1255813"></a>
+<a name="id1058874"></a>
           <a class="link" href="transform.html#spirit.advanced.customize.transform.module_headers">Module
           Headers</a>
         </h6>
@@ -76,7 +76,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.transform.namespace"></a><h6>
-<a name="id1255898"></a>
+<a name="id1058985"></a>
           <a class="link" href="transform.html#spirit.advanced.customize.transform.namespace">Namespace</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -93,7 +93,7 @@
                 </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.transform.synopsis"></a><h6>
-<a name="id1255972"></a>
+<a name="id1059070"></a>
           <a class="link" href="transform.html#spirit.advanced.customize.transform.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Exposed</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Transformed</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Domain</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
@@ -106,7 +106,7 @@
 </span><span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.transform.template_parameters"></a><h6>
-<a name="id1256208"></a>
+<a name="id1059361"></a>
           <a class="link" href="transform.html#spirit.advanced.customize.transform.template_parameters">Template
           parameters</a>
         </h6>
@@ -212,7 +212,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.transform.notation"></a><h6>
-<a name="id1256466"></a>
+<a name="id1059658"></a>
           <a class="link" href="transform.html#spirit.advanced.customize.transform.notation">Notation</a>
         </h6>
 <div class="variablelist">
@@ -247,7 +247,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.transform.expression_semantics"></a><h6>
-<a name="id1256657"></a>
+<a name="id1059896"></a>
           <a class="link" href="transform.html#spirit.advanced.customize.transform.expression_semantics">Expression
           Semantics</a>
         </h6>
@@ -351,7 +351,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.transform.predefined_specializations"></a><h6>
-<a name="id1257113"></a>
+<a name="id1060458"></a>
           <a class="link" href="transform.html#spirit.advanced.customize.transform.predefined_specializations">Predefined
           Specializations</a>
         </h6>
@@ -533,7 +533,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.transform.when_to_implement"></a><h6>
-<a name="id1258692"></a>
+<a name="id1061598"></a>
           <a class="link" href="transform.html#spirit.advanced.customize.transform.when_to_implement">When
           to implement</a>
         </h6>
@@ -550,7 +550,7 @@
           is not constructible from the type <code class="computeroutput"><span class="identifier">Exposed</span></code>.
         </p>
 <a name="spirit.advanced.customize.transform.example"></a><h6>
-<a name="id1258759"></a>
+<a name="id1061699"></a>
           <a class="link" href="transform.html#spirit.advanced.customize.transform.example">Example</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parsers in Depth</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../indepth.html" title="In Depth">
 <link rel="prev" href="../indepth.html" title="In Depth">
@@ -193,59 +193,20 @@
 </dl>
 </div>
 <a name="spirit.advanced.indepth.parsers_indepth.primitive_parsers"></a><h6>
-<a name="id1246658"></a>
+<a name="id1050268"></a>
           <a class="link" href="parsers_indepth.html#spirit.advanced.indepth.parsers_indepth.primitive_parsers">Primitive
           Parsers</a>
         </h6>
 <p>
           For our dissection study, we will use a Spirit
- primitive, the <code class="computeroutput"><span class="identifier">int_parser</span></code>
+ primitive, the <code class="computeroutput"><span class="identifier">any_int_parser</span></code>
           in the boost::spirit::qi namespace.
         </p>
 <p>
-
-</p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
- <span class="keyword">typename</span> <span class="identifier">T</span>
- <span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">Radix</span> <span class="special">=</span> <span class="number">10</span>
- <span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">MinDigits</span> <span class="special">=</span> <span class="number">1</span>
- <span class="special">,</span> <span class="keyword">int</span> <span class="identifier">MaxDigits</span> <span class="special">=</span> <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">int_parser_impl</span>
- <span class="special">:</span> <span class="identifier">primitive_parser</span><span class="special">&lt;</span><span class="identifier">int_parser_impl</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span><span class="special">&gt;</span> <span class="special">&gt;</span>
-<span class="special">{</span>
- <span class="comment">// check template parameter 'Radix' for validity
-</span> <span class="identifier">BOOST_SPIRIT_ASSERT_MSG</span><span class="special">(</span>
- <span class="identifier">Radix</span> <span class="special">==</span> <span class="number">2</span> <span class="special">||</span> <span class="identifier">Radix</span> <span class="special">==</span> <span class="number">8</span> <span class="special">||</span> <span class="identifier">Radix</span> <span class="special">==</span> <span class="number">10</span> <span class="special">||</span> <span class="identifier">Radix</span> <span class="special">==</span> <span class="number">16</span><span class="special">,</span>
- <span class="identifier">not_supported_radix</span><span class="special">,</span> <span class="special">());</span>
-
- <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Context</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
- <span class="keyword">struct</span> <span class="identifier">attribute</span>
- <span class="special">{</span>
- <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">type</span><span class="special">;</span>
- <span class="special">};</span>
-
- <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Context</span>
- <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Skipper</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Attribute</span><span class="special">&gt;</span>
- <span class="keyword">bool</span> <span class="identifier">parse</span><span class="special">(</span><span class="identifier">Iterator</span><span class="special">&amp;</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">last</span>
- <span class="special">,</span> <span class="identifier">Context</span><span class="special">&amp;</span> <span class="comment">/*context*/</span><span class="special">,</span> <span class="identifier">Skipper</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">skipper</span>
- <span class="special">,</span> <span class="identifier">Attribute</span><span class="special">&amp;</span> <span class="identifier">attr</span><span class="special">)</span> <span class="keyword">const</span>
- <span class="special">{</span>
- <span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip_over</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">skipper</span><span class="special">);</span>
- <span class="keyword">return</span> <span class="identifier">extract_int</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span><span class="special">&gt;</span>
- <span class="special">::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">);</span>
- <span class="special">}</span>
-
- <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Context</span><span class="special">&gt;</span>
- <span class="identifier">info</span> <span class="identifier">what</span><span class="special">(</span><span class="identifier">Context</span><span class="special">&amp;</span> <span class="comment">/*context*/</span><span class="special">)</span> <span class="keyword">const</span>
- <span class="special">{</span>
- <span class="keyword">return</span> <span class="identifier">info</span><span class="special">(</span><span class="string">"integer"</span><span class="special">);</span>
- <span class="special">}</span>
-<span class="special">};</span>
-</pre>
-<p>
+ [primitive_parsers_any_int_parser]
         </p>
 <p>
- The <code class="computeroutput"><span class="identifier">int_parser</span></code> is derived
+ The <code class="computeroutput"><span class="identifier">any_int_parser</span></code> is derived
           from a <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></code>,
           which in turn derives from <code class="computeroutput"><span class="identifier">parser</span><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></code>. Therefore, it supports the following
           requirements:
@@ -289,7 +250,7 @@
         </p>
 <p>
           The <span class="emphasis"><em>attribute</em></span> metafunction returns the T template
- parameter. We associate the <code class="computeroutput"><span class="identifier">int_parser</span></code>
+ parameter. We associate the <code class="computeroutput"><span class="identifier">any_int_parser</span></code>
           to some placeholders for <code class="computeroutput"><span class="identifier">short_</span></code>,
           <code class="computeroutput"><span class="identifier">int_</span></code>, <code class="computeroutput"><span class="identifier">long_</span></code>
           and <code class="computeroutput"><span class="identifier">long_long</span></code> types. But,
@@ -298,41 +259,37 @@
 <p>
           
 </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special">&lt;</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">short_</span><span class="special">&gt;</span> <span class="comment">// enables short_
-</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;&gt;</span> <span class="comment">// enables short_
+</span><span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special">&lt;</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">short_</span><span class="special">&gt;</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
 </pre>
 <p>
         </p>
 <p>
           
 </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special">&lt;</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">int_</span><span class="special">&gt;</span> <span class="comment">// enables int_
-</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;&gt;</span> <span class="comment">// enables int_
+</span><span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special">&lt;</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">int_</span><span class="special">&gt;</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
 </pre>
 <p>
         </p>
 <p>
           
 </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special">&lt;</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_</span><span class="special">&gt;</span> <span class="comment">// enables long_
-</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;&gt;</span> <span class="comment">// enables long_
+</span><span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special">&lt;</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_</span><span class="special">&gt;</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
 </pre>
 <p>
         </p>
 <p>
           
 </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special">&lt;</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_long</span><span class="special">&gt;</span> <span class="comment">// enables long_long
-</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;&gt;</span> <span class="comment">// enables long_long
+</span><span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special">&lt;</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_long</span><span class="special">&gt;</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
 </pre>
 <p>
         </p>
 <p>
- Notice that <code class="computeroutput"><span class="identifier">int_parser</span></code>
+ Notice that <code class="computeroutput"><span class="identifier">any_int_parser</span></code>
           is placed in the namespace boost::spirit::qi while these <span class="emphasis"><em>enablers</em></span>
           are in namespace boost::spirit. The reason is that these placeholders are
           shared by other Spirit <span class="emphasis"><em>domains</em></span>.
@@ -349,10 +306,14 @@
 <p>
           
 </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
+ <span class="keyword">typename</span> <span class="identifier">T</span>
+ <span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">Radix</span> <span class="special">=</span> <span class="number">10</span>
+ <span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">MinDigits</span> <span class="special">=</span> <span class="number">1</span>
+ <span class="special">,</span> <span class="keyword">int</span> <span class="identifier">MaxDigits</span> <span class="special">=</span> <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">make_int</span>
 <span class="special">{</span>
- <span class="keyword">typedef</span> <span class="identifier">int_parser_impl</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">result_type</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">any_int_parser</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span><span class="special">&gt;</span> <span class="identifier">result_type</span><span class="special">;</span>
     <span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">unused_type</span><span class="special">,</span> <span class="identifier">unused_type</span><span class="special">)</span> <span class="keyword">const</span>
     <span class="special">{</span>
         <span class="keyword">return</span> <span class="identifier">result_type</span><span class="special">();</span>
@@ -385,7 +346,8 @@
           
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">short_</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span> <span class="special">:</span> <span class="identifier">make_int</span><span class="special">&lt;</span><span class="keyword">short</span><span class="special">&gt;</span> <span class="special">{};</span>
+<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">short_</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span>
+ <span class="special">:</span> <span class="identifier">make_int</span><span class="special">&lt;</span><span class="keyword">short</span><span class="special">&gt;</span> <span class="special">{};</span>
 </pre>
 <p>
         </p>
@@ -393,7 +355,8 @@
           
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">int_</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span> <span class="special">:</span> <span class="identifier">make_int</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">{};</span>
+<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">int_</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span>
+ <span class="special">:</span> <span class="identifier">make_int</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">{};</span>
 </pre>
 <p>
         </p>
@@ -401,7 +364,8 @@
           
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span> <span class="special">:</span> <span class="identifier">make_int</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span> <span class="special">{};</span>
+<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span>
+ <span class="special">:</span> <span class="identifier">make_int</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span> <span class="special">{};</span>
 </pre>
 <p>
         </p>
@@ -409,7 +373,7 @@
           
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_long</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_long</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">&gt;</span>
   <span class="special">:</span> <span class="identifier">make_int</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">long_long_type</span><span class="special">&gt;</span> <span class="special">{};</span>
 </pre>
 <p>
@@ -420,7 +384,7 @@
           which does the actual work.
         </p>
 <a name="spirit.advanced.indepth.parsers_indepth.composite_parsers"></a><h6>
-<a name="id1249272"></a>
+<a name="id1051978"></a>
           <a class="link" href="parsers_indepth.html#spirit.advanced.indepth.parsers_indepth.composite_parsers">Composite
           Parsers</a>
         </h6>
@@ -463,6 +427,9 @@
             <span class="identifier">value_type</span><span class="special">;</span>
         <span class="identifier">value_type</span> <span class="identifier">val</span> <span class="special">=</span> <span class="identifier">value_type</span><span class="special">();</span>
 
+ <span class="comment">// ensure the attribute is actually a container type
+</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">make_container</span><span class="special">(</span><span class="identifier">attr</span><span class="special">);</span>
+
         <span class="comment">// Repeat while subject parses ok
 </span> <span class="identifier">Iterator</span> <span class="identifier">save</span> <span class="special">=</span> <span class="identifier">first</span><span class="special">;</span>
         <span class="keyword">while</span> <span class="special">(</span><span class="identifier">subject</span><span class="special">.</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">save</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">context</span><span class="special">,</span> <span class="identifier">skipper</span><span class="special">,</span> <span class="identifier">val</span><span class="special">)</span> <span class="special">&amp;&amp;</span>

Modified: branches/release/libs/spirit/doc/html/spirit/faq.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/faq.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/faq.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Spirit FAQ</title>
 <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../index.html" title="Spirit 2.4.2">
 <link rel="prev" href="support/utree.html" title="The utree data structure">
@@ -27,7 +27,7 @@
 <a name="spirit.faq"></a><a class="link" href="faq.html" title="Spirit FAQ">Spirit FAQ</a>
 </h2></div></div></div>
 <a name="spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_"></a><h4>
-<a name="id1311629"></a>
+<a name="id1105963"></a>
       <a class="link" href="faq.html#spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_">I'm
       getting multiple symbol definition errors while using Visual C++. Anything
       I could do about that?</a>
@@ -63,7 +63,7 @@
       while using this workaround is less verbose error messages generated from static_assert.
     </p>
 <a name="spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_"></a><h4>
-<a name="id1311798"></a>
+<a name="id1106188"></a>
       <a class="link" href="faq.html#spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_">I'm
       very confused about the header hell in my boost/spirit directory. What's all
       this about?</a>
@@ -171,7 +171,7 @@
       are available.
     </p>
 <a name="spirit.faq.why_doesn_t_my_symbol_table_work_in_a__code__phrase_role__identifier__no_case__phrase___code__directive_"></a><h4>
-<a name="id1313414"></a>
+<a name="id1106850"></a>
       <a class="link" href="faq.html#spirit.faq.why_doesn_t_my_symbol_table_work_in_a__code__phrase_role__identifier__no_case__phrase___code__directive_">Why
       doesn't my symbol table work in a <code class="computeroutput"><span class="identifier">no_case</span></code>
       directive?</a>
@@ -185,7 +185,7 @@
       one or more uppercase characters will not match any input.
     </p>
 <a name="spirit.faq.i_m_getting_a_compilation_error_mentioning__code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function__phrase___code__and_or___________code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function4__phrase___code___what_does_this_mean_"></a><h4>
-<a name="id1313485"></a>
+<a name="id1106953"></a>
       <a class="link" href="faq.html#spirit.faq.i_m_getting_a_compilation_error_mentioning__code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function__phrase___code__and_or___________code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function4__phrase___code___what_does_this_mean_">I'm
       getting a compilation error mentioning <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span></code>
       and/or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function4</span></code>. What does this mean?</a>

Modified: branches/release/libs/spirit/doc/html/spirit/introduction.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/introduction.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/introduction.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Introduction</title>
 <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../index.html" title="Spirit 2.4.2">
 <link rel="prev" href="what_s_new/spirit_1_x.html" title="Spirit Classic">
@@ -29,7 +29,7 @@
 <p>
       Boost Spirit is an object-oriented, recursive-descent parser and output generation
       library for C++. It allows you to write grammars and format descriptions using
- a format similar to Extended Backus Naur Form (EBNF)<sup>[<a name="id865847" href="#ftn.id865847" class="footnote">2</a>]</sup> directly in C++. These inline grammar specifications can mix freely
+ a format similar to Extended Backus Naur Form (EBNF)<sup>[<a name="id719605" href="#ftn.id719605" class="footnote">2</a>]</sup> directly in C++. These inline grammar specifications can mix freely
       with other C++ code and, thanks to the generative power of C++ templates, are
       immediately executable. In retrospect, conventional compiler-compilers or parser-generators
       have to perform an additional translation step from the source EBNF code to
@@ -135,7 +135,7 @@
 <p><br class="figure-break">
     </p>
 <a name="spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_"></a><h4>
-<a name="id866250"></a>
+<a name="id719865"></a>
       <a class="link" href="introduction.html#spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_">A
       Quick Overview of Parsing with <span class="emphasis"><em>Spirit.Qi</em></span></a>
     </h4>
@@ -226,7 +226,7 @@
       <code class="computeroutput"><span class="special">;</span></code>.
     </p>
 <a name="spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_"></a><h4>
-<a name="id867206"></a>
+<a name="id720973"></a>
       <a class="link" href="introduction.html#spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_">A
       Quick Overview of Output Generation with <span class="emphasis"><em>Spirit.Karma</em></span></a>
     </h4>
@@ -453,7 +453,7 @@
 </div>
 <br class="table-break"><div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id865847" href="#id865847" class="para">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id719605" href="#id719605" class="para">2</a>] </sup>
         <a href="http://www.cl.cam.ac.uk/%7Emgk25/iso-14977.pdf" target="_top">ISO-EBNF</a>
       </p></div>
 </div>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Compound Attribute Rules</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../quick_reference.html" title="Quick Reference">
 <link rel="prev" href="primitive_generators/action.html" title="Generator Semantic Actions">
@@ -28,7 +28,7 @@
         Attribute Rules</a>
 </h4></div></div></div>
 <a name="spirit.karma.quick_reference.compound_attribute_rules.notation"></a><h6>
-<a name="id1063845"></a>
+<a name="id893625"></a>
           <a class="link" href="compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Notation</a>
         </h6>
 <p>
@@ -77,7 +77,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.karma.quick_reference.compound_attribute_rules.compound_generator_attribute_types"></a><h6>
-<a name="id1064381"></a>
+<a name="id894316"></a>
           <a class="link" href="compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.compound_generator_attribute_types">Compound
           Generator Attribute Types</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/action.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/action.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/action.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Semantic Actions with Generators</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="generate_api/create_generator.html" title="API for Automatic Generator Creation">
@@ -28,7 +28,7 @@
         Generators</a>
 </h4></div></div></div>
 <a name="spirit.karma.reference.action.description"></a><h6>
-<a name="id1088996"></a>
+<a name="id915149"></a>
           <a class="link" href="action.html#spirit.karma.reference.action.description">Description</a>
         </h6>
 <p>
@@ -40,7 +40,7 @@
           generator expression.
         </p>
 <a name="spirit.karma.reference.action.header"></a><h6>
-<a name="id1089031"></a>
+<a name="id915200"></a>
           <a class="link" href="action.html#spirit.karma.reference.action.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/action.hpp&gt;
@@ -50,7 +50,7 @@
           Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
         </p>
 <a name="spirit.karma.reference.action.model_of"></a><h6>
-<a name="id1089106"></a>
+<a name="id915298"></a>
           <a class="link" href="action.html#spirit.karma.reference.action.model_of">Model of</a>
         </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -86,7 +86,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.action.expression_semantics"></a><h6>
-<a name="id1089307"></a>
+<a name="id915542"></a>
           <a class="link" href="action.html#spirit.karma.reference.action.expression_semantics">Expression
           Semantics</a>
         </h6>
@@ -164,7 +164,7 @@
           and not generating any output.
         </p>
 <a name="spirit.karma.reference.action.attributes"></a><h6>
-<a name="id1089764"></a>
+<a name="id916118"></a>
           <a class="link" href="action.html#spirit.karma.reference.action.attributes">Attributes</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -201,7 +201,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.action.complexity"></a><h6>
-<a name="id1089889"></a>
+<a name="id916261"></a>
           <a class="link" href="action.html#spirit.karma.reference.action.complexity">Complexity</a>
         </h6>
 <p>
@@ -222,7 +222,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.action.example"></a><h6>
-<a name="id1089928"></a>
+<a name="id916302"></a>
           <a class="link" href="action.html#spirit.karma.reference.action.example">Example</a>
         </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auto.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auto.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auto.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Auto Generator</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="action.html" title="Semantic Actions with Generators">
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.auto"></a><a class="link" href="auto.html" title="Auto Generator">Auto Generator</a>
 </h4></div></div></div>
 <a name="spirit.karma.reference.auto.description"></a><h6>
-<a name="id1090500"></a>
+<a name="id917010"></a>
           <a class="link" href="auto.html#spirit.karma.reference.auto.description">Description</a>
         </h6>
 <p>
@@ -36,7 +36,7 @@
           based on the supplied attribute type.
         </p>
 <a name="spirit.karma.reference.auto.header"></a><h6>
-<a name="id1090524"></a>
+<a name="id917044"></a>
           <a class="link" href="auto.html#spirit.karma.reference.auto.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auto.hpp&gt;
@@ -46,7 +46,7 @@
           Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
         </p>
 <a name="spirit.karma.reference.auto.namespace"></a><h6>
-<a name="id1090598"></a>
+<a name="id917143"></a>
           <a class="link" href="auto.html#spirit.karma.reference.auto.namespace">Namespace</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -64,7 +64,7 @@
                 </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auto.model_of"></a><h6>
-<a name="id1090676"></a>
+<a name="id917233"></a>
           <a class="link" href="auto.html#spirit.karma.reference.auto.model_of">Model of</a>
         </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -85,7 +85,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.auto.expression_semantics"></a><h6>
-<a name="id1090798"></a>
+<a name="id917390"></a>
           <a class="link" href="auto.html#spirit.karma.reference.auto.expression_semantics">Expression
           Semantics</a>
         </h6>
@@ -142,7 +142,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auto.additional_requirements"></a><h6>
-<a name="id1090924"></a>
+<a name="id917534"></a>
           <a class="link" href="auto.html#spirit.karma.reference.auto.additional_requirements">Additional
           Requirements</a>
         </h6>
@@ -331,7 +331,7 @@
           can be used also to redefined any of the predefined mappings.
         </p>
 <a name="spirit.karma.reference.auto.attributes"></a><h6>
-<a name="id1091636"></a>
+<a name="id918408"></a>
           <a class="link" href="auto.html#spirit.karma.reference.auto.attributes">Attributes</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -407,7 +407,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.auto.complexity"></a><h6>
-<a name="id1091880"></a>
+<a name="id918707"></a>
           <a class="link" href="auto.html#spirit.karma.reference.auto.complexity">Complexity</a>
         </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -417,7 +417,7 @@
             complexity.
           </p></blockquote></div>
 <a name="spirit.karma.reference.auto.example"></a><h6>
-<a name="id1091907"></a>
+<a name="id918745"></a>
           <a class="link" href="auto.html#spirit.karma.reference.auto.example">Example</a>
         </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Auxiliary Generators</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="auto.html" title="Auto Generator">
@@ -43,7 +43,7 @@
           and <code class="computeroutput"><span class="identifier">lazy</span></code> generators.
         </p>
 <a name="spirit.karma.reference.auxiliary.module_header"></a><h6>
-<a name="id1094777"></a>
+<a name="id920258"></a>
           <a class="link" href="auxiliary.html#spirit.karma.reference.auxiliary.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auxiliary.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Attribute Transformation Pseudo Generator (attr_cast)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auxiliary.html" title="Auxiliary Generators">
 <link rel="prev" href="../auxiliary.html" title="Auxiliary Generators">
@@ -28,7 +28,7 @@
           Transformation Pseudo Generator (<code class="computeroutput"><span class="identifier">attr_cast</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.description"></a><h6>
-<a name="id1094868"></a>
+<a name="id920382"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             component using the customization point <a class="link" href="../../../advanced/customize/transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"><code class="computeroutput"><span class="identifier">transform_attribute</span></code></a>.
           </p>
 <a name="spirit.karma.reference.auxiliary.attr_cast.header"></a><h6>
-<a name="id1094935"></a>
+<a name="id920478"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auxiliary/attr_cast.hpp&gt;
@@ -51,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.auxiliary.attr_cast.namespace"></a><h6>
-<a name="id1095010"></a>
+<a name="id920578"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -69,14 +69,14 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.synopsis"></a><h6>
-<a name="id1095088"></a>
+<a name="id920669"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span> <span class="identifier">Transformed</span><span class="special">&gt;</span>
 <span class="special">&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;</span> <span class="identifier">attr_cast</span><span class="special">(&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;);</span>
 </pre>
 <a name="spirit.karma.reference.auxiliary.attr_cast.template_parameters"></a><h6>
-<a name="id1095160"></a>
+<a name="id920761"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.template_parameters">Template
             parameters</a>
           </h6>
@@ -154,7 +154,7 @@
             not explicitly specified.
           </p>
 <a name="spirit.karma.reference.auxiliary.attr_cast.model_of"></a><h6>
-<a name="id1095400"></a>
+<a name="id921041"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.model_of">Model
             of</a>
           </h6>
@@ -171,7 +171,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.expression_semantics"></a><h6>
-<a name="id1095461"></a>
+<a name="id921112"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -259,7 +259,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.attributes"></a><h6>
-<a name="id1095789"></a>
+<a name="id921535"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -330,7 +330,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.complexity"></a><h6>
-<a name="id1097909"></a>
+<a name="id921917"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -338,7 +338,7 @@
               of the embedded generator <code class="computeroutput"><span class="identifier">g</span></code>.
             </p></blockquote></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.example"></a><h6>
-<a name="id1097936"></a>
+<a name="id921955"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>End of Line Generator (eol)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auxiliary.html" title="Auxiliary Generators">
 <link rel="prev" href="attr_cast.html" title="Attribute Transformation Pseudo Generator (attr_cast)">
@@ -28,7 +28,7 @@
           Generator (<code class="computeroutput"><span class="identifier">eol</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.auxiliary.eol.description"></a><h6>
-<a name="id1098630"></a>
+<a name="id922812"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.description">Description</a>
           </h6>
 <p>
@@ -38,7 +38,7 @@
             details).
           </p>
 <a name="spirit.karma.reference.auxiliary.eol.header"></a><h6>
-<a name="id1098682"></a>
+<a name="id922886"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auxiliary/eol.hpp&gt;
@@ -48,7 +48,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.auxiliary.eol.namespace"></a><h6>
-<a name="id1098756"></a>
+<a name="id922986"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -66,14 +66,14 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eol.model_of"></a><h6>
-<a name="id1098834"></a>
+<a name="id923077"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.auxiliary.eol.expression_semantics"></a><h6>
-<a name="id1098869"></a>
+<a name="id923119"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -114,7 +114,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eol.attributes"></a><h6>
-<a name="id1098960"></a>
+<a name="id923222"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -148,7 +148,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eol.complexity"></a><h6>
-<a name="id1099040"></a>
+<a name="id923312"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -159,7 +159,7 @@
             output.
           </p>
 <a name="spirit.karma.reference.auxiliary.eol.example"></a><h6>
-<a name="id1099064"></a>
+<a name="id923343"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Epsilon Generator (eps)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auxiliary.html" title="Auxiliary Generators">
 <link rel="prev" href="eol.html" title="End of Line Generator (eol)">
@@ -34,7 +34,7 @@
             or to insert semantic actions into the generation process.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.description"></a><h6>
-<a name="id1099468"></a>
+<a name="id923848"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.description">Description</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
             a multi-purpose generator that emits a zero length string.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.simple_form"></a><h6>
-<a name="id1099492"></a>
+<a name="id923882"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.simple_form">Simple
             Form</a>
           </h6>
@@ -60,7 +60,7 @@
 <pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span> <span class="special">|</span> <span class="identifier">c</span> <span class="special">|</span> <span class="identifier">eps</span><span class="special">[</span><span class="identifier">error</span><span class="special">()];</span> <span class="comment">// Call error if a, b, and c fail to generate
 </span></pre>
 <a name="spirit.karma.reference.auxiliary.eps.semantic_predicate"></a><h6>
-<a name="id1099592"></a>
+<a name="id924012"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.semantic_predicate">Semantic
             Predicate</a>
           </h6>
@@ -90,7 +90,7 @@
             the production will return early without ever touching rest.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.header"></a><h6>
-<a name="id1099781"></a>
+<a name="id924273"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auxiliary/eps.hpp&gt;
@@ -100,7 +100,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.namespace"></a><h6>
-<a name="id1099855"></a>
+<a name="id924372"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -118,7 +118,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eps.model_of"></a><h6>
-<a name="id1100080"></a>
+<a name="id924464"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -139,7 +139,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.auxiliary.eps.expression_semantics"></a><h6>
-<a name="id1100166"></a>
+<a name="id924563"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -209,7 +209,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eps.attributes"></a><h6>
-<a name="id1100359"></a>
+<a name="id924788"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -269,7 +269,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eps.complexity"></a><h6>
-<a name="id1100526"></a>
+<a name="id924978"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -279,7 +279,7 @@
             The complexity is constant as no output is generated.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.example"></a><h6>
-<a name="id1100550"></a>
+<a name="id925008"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,11 +3,11 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Lazy Generator (lazy)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auxiliary.html" title="Auxiliary Generators">
 <link rel="prev" href="eps.html" title="Epsilon Generator (eps)">
-<link rel="next" href="../binary.html" title="Binary">
+<link rel="next" href="../binary.html" title="Binary Generators">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">lazy</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.auxiliary.lazy.description"></a><h6>
-<a name="id1101072"></a>
+<a name="id925657"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.description">Description</a>
           </h6>
 <p>
@@ -38,7 +38,7 @@
             its return value as the actual generator to produce the output.
           </p>
 <a name="spirit.karma.reference.auxiliary.lazy.header"></a><h6>
-<a name="id1101096"></a>
+<a name="id925696"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auxiliary/lazy.hpp&gt;
@@ -48,7 +48,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.auxiliary.lazy.namespace"></a><h6>
-<a name="id1101170"></a>
+<a name="id925795"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -66,7 +66,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.lazy.model_of"></a><h6>
-<a name="id1101248"></a>
+<a name="id925886"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.model_of">Model
             of</a>
           </h6>
@@ -99,7 +99,7 @@
             Actions</a>).
           </p>
 <a name="spirit.karma.reference.auxiliary.lazy.expression_semantics"></a><h6>
-<a name="id1101400"></a>
+<a name="id926082"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -166,7 +166,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.lazy.attributes"></a><h6>
-<a name="id1101556"></a>
+<a name="id926274"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -218,7 +218,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.lazy.complexity"></a><h6>
-<a name="id1101708"></a>
+<a name="id926457"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.complexity">Complexity</a>
           </h6>
 <p>
@@ -227,7 +227,7 @@
             <code class="computeroutput"><span class="identifier">fg</span></code>.
           </p>
 <a name="spirit.karma.reference.auxiliary.lazy.example"></a><h6>
-<a name="id1101739"></a>
+<a name="id926502"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/basics.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/basics.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/basics.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Basics</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="generator_concepts/nonterminal.html" title="Nonterminal">
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.basics"></a><a class="link" href="basics.html" title="Generator Basics">Generator Basics</a>
 </h4></div></div></div>
 <a name="spirit.karma.reference.basics.lazy_argument"></a><h6>
-<a name="id1075706"></a>
+<a name="id904736"></a>
           <a class="link" href="basics.html#spirit.karma.reference.basics.lazy_argument">Lazy Argument</a>
         </h6>
 <p>
@@ -52,7 +52,7 @@
           Actions</a>).
         </p>
 <a name="spirit.karma.reference.basics.character_encoding_namespace"></a><h6>
-<a name="id1075849"></a>
+<a name="id904922"></a>
           <a class="link" href="basics.html#spirit.karma.reference.basics.character_encoding_namespace">Character
           Encoding Namespace</a>
         </h6>
@@ -113,7 +113,7 @@
             </li>
 </ul></div>
 <a name="spirit.karma.reference.basics.examples"></a><h6>
-<a name="id1076066"></a>
+<a name="id905186"></a>
           <a class="link" href="basics.html#spirit.karma.reference.basics.examples">Examples</a>
         </h6>
 <p>
@@ -261,7 +261,7 @@
 <p>
         </p>
 <a name="spirit.karma.reference.basics.models"></a><h6>
-<a name="id1081114"></a>
+<a name="id908375"></a>
           <a class="link" href="basics.html#spirit.karma.reference.basics.models">Models</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,9 +1,9 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Binary</title>
+<title>Binary Generators</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="auxiliary/lazy.html" title="Lazy Generator (lazy)">
@@ -24,7 +24,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.binary"></a><a class="link" href="binary.html" title="Binary">Binary</a>
+<a name="spirit.karma.reference.binary"></a><a class="link" href="binary.html" title="Binary Generators">Binary Generators</a>
 </h4></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="binary/binary_native.html">Binary
@@ -41,7 +41,7 @@
           to control padding of the generated output stream.
         </p>
 <a name="spirit.karma.reference.binary.module_header"></a><h6>
-<a name="id1103410"></a>
+<a name="id927193"></a>
           <a class="link" href="binary.html#spirit.karma.reference.binary.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/binary.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Binary Big Endianness Generators</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
-<link rel="up" href="../binary.html" title="Binary">
+<link rel="up" href="../binary.html" title="Binary Generators">
 <link rel="prev" href="binary_little.html" title="Binary Little Endianness Generators">
 <link rel="next" href="../char.html" title="Char Generators">
 </head>
@@ -28,7 +28,7 @@
           Big Endianness Generators</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.binary.binary_big.description"></a><h6>
-<a name="id1108499"></a>
+<a name="id932143"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             byte order.
           </p>
 <a name="spirit.karma.reference.binary.binary_big.header"></a><h6>
-<a name="id1108516"></a>
+<a name="id932168"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/binary.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.binary.binary_big.namespace"></a><h6>
-<a name="id1108590"></a>
+<a name="id932266"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -93,7 +93,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_big.model_of"></a><h6>
-<a name="id1109892"></a>
+<a name="id932521"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.model_of">Model
             of</a>
           </h6>
@@ -124,7 +124,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.binary.binary_big.expression_semantics"></a><h6>
-<a name="id1110009"></a>
+<a name="id932660"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -243,7 +243,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_big.attributes"></a><h6>
-<a name="id1110259"></a>
+<a name="id932949"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -342,14 +342,14 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_big.complexity"></a><h6>
-<a name="id1110555"></a>
+<a name="id933292"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of bytes emitted by the binary generator
             </p></blockquote></div>
 <a name="spirit.karma.reference.binary.binary_big.example"></a><h6>
-<a name="id1110576"></a>
+<a name="id933320"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Binary Little Endianness Generators</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
-<link rel="up" href="../binary.html" title="Binary">
+<link rel="up" href="../binary.html" title="Binary Generators">
 <link rel="prev" href="binary_native.html" title="Binary Native Endianness Generators">
 <link rel="next" href="binary_big.html" title="Binary Big Endianness Generators">
 </head>
@@ -28,7 +28,7 @@
           Little Endianness Generators</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.binary.binary_little.description"></a><h6>
-<a name="id1106883"></a>
+<a name="id930178"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             byte order.
           </p>
 <a name="spirit.karma.reference.binary.binary_little.header"></a><h6>
-<a name="id1106899"></a>
+<a name="id930203"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/binary.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.binary.binary_little.namespace"></a><h6>
-<a name="id1106974"></a>
+<a name="id930303"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -93,7 +93,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_little.model_of"></a><h6>
-<a name="id1107183"></a>
+<a name="id930557"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.model_of">Model
             of</a>
           </h6>
@@ -124,7 +124,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.binary.binary_little.expression_semantics"></a><h6>
-<a name="id1107298"></a>
+<a name="id930695"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -243,7 +243,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_little.attributes"></a><h6>
-<a name="id1107545"></a>
+<a name="id930984"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -342,14 +342,14 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_little.complexity"></a><h6>
-<a name="id1107841"></a>
+<a name="id931326"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of bytes emitted by the binary generator
             </p></blockquote></div>
 <a name="spirit.karma.reference.binary.binary_little.example"></a><h6>
-<a name="id1107862"></a>
+<a name="id931354"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,10 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Binary Native Endianness Generators</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
-<link rel="up" href="../binary.html" title="Binary">
-<link rel="prev" href="../binary.html" title="Binary">
+<link rel="up" href="../binary.html" title="Binary Generators">
+<link rel="prev" href="../binary.html" title="Binary Generators">
 <link rel="next" href="binary_little.html" title="Binary Little Endianness Generators">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -28,7 +28,7 @@
           Native Endianness Generators</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.binary.binary_native.description"></a><h6>
-<a name="id1103494"></a>
+<a name="id927306"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             (byte order) of the target architecture.
           </p>
 <a name="spirit.karma.reference.binary.binary_native.header"></a><h6>
-<a name="id1103511"></a>
+<a name="id927332"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/binary.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.binary.binary_native.namespace"></a><h6>
-<a name="id1103585"></a>
+<a name="id927431"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -99,7 +99,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_native.model_of"></a><h6>
-<a name="id1103831"></a>
+<a name="id927730"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.model_of">Model
             of</a>
           </h6>
@@ -135,7 +135,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.binary.binary_native.expression_semantics"></a><h6>
-<a name="id1103973"></a>
+<a name="id927898"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -282,7 +282,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_native.attributes"></a><h6>
-<a name="id1104281"></a>
+<a name="id928257"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -419,14 +419,14 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_native.complexity"></a><h6>
-<a name="id1104746"></a>
+<a name="id928808"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of bytes emitted by the binary generator
             </p></blockquote></div>
 <a name="spirit.karma.reference.binary.binary_native.example"></a><h6>
-<a name="id1104766"></a>
+<a name="id928835"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Char Generators</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="binary/binary_big.html" title="Binary Big Endianness Generators">
@@ -42,7 +42,7 @@
           <code class="computeroutput"><span class="identifier">xdigit</span></code>, etc.).
         </p>
 <a name="spirit.karma.reference.char.module_header"></a><h6>
-<a name="id1111272"></a>
+<a name="id934190"></a>
           <a class="link" href="char.html#spirit.karma.reference.char.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/char.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Character Classification Generators (alnum, digit, etc.)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../char.html" title="Char Generators">
 <link rel="prev" href="char_generator.html" title="Character Generators (char_, lit)">
@@ -29,7 +29,7 @@
           <code class="computeroutput"><span class="identifier">digit</span></code>, etc.)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.char.char_class.description"></a><h6>
-<a name="id1115779"></a>
+<a name="id938601"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             such as forcing lower or upper case.
           </p>
 <a name="spirit.karma.reference.char.char_class.header"></a><h6>
-<a name="id1115832"></a>
+<a name="id938677"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/char/char_class.hpp&gt;
@@ -51,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.char.char_class.namespace"></a><h6>
-<a name="id1115907"></a>
+<a name="id938776"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -132,7 +132,7 @@
             and will not compile if no attribute is associated.
           </p>
 <a name="spirit.karma.reference.char.char_class.model_of"></a><h6>
-<a name="id1116275"></a>
+<a name="id939200"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.model_of">Model
             of</a>
           </h6>
@@ -150,7 +150,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.char.char_class.expression_semantics"></a><h6>
-<a name="id1116343"></a>
+<a name="id939278"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -401,7 +401,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_class.attributes"></a><h6>
-<a name="id1117321"></a>
+<a name="id940473"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.attributes">Attributes</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -423,7 +423,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_class.complexity"></a><h6>
-<a name="id1118780"></a>
+<a name="id940634"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -434,7 +434,7 @@
             per invocation.
           </p>
 <a name="spirit.karma.reference.char.char_class.example"></a><h6>
-<a name="id1118804"></a>
+<a name="id940665"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Character Generators (char_, lit)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../char.html" title="Char Generators">
 <link rel="prev" href="../char.html" title="Char Generators">
@@ -28,7 +28,7 @@
           Generators (<code class="computeroutput"><span class="identifier">char_</span></code>, <code class="computeroutput"><span class="identifier">lit</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.char.char_generator.description"></a><h6>
-<a name="id1111370"></a>
+<a name="id934324"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.description">Description</a>
           </h6>
 <p>
@@ -45,7 +45,7 @@
             There are various forms of <code class="computeroutput"><span class="identifier">char_</span></code>.
           </p>
 <a name="spirit.karma.reference.char.char_generator.char_"></a><h6>
-<a name="id1111423"></a>
+<a name="id934397"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char_">char_</a>
           </h6>
 <p>
@@ -56,7 +56,7 @@
 <pre class="programlisting"><span class="identifier">char_</span> <span class="comment">// emits any character as supplied by the attribute
 </span></pre>
 <a name="spirit.karma.reference.char.char_generator.char__ch_"></a><h6>
-<a name="id1111466"></a>
+<a name="id934456"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char__ch_">char_(ch)</a>
           </h6>
 <p>
@@ -68,7 +68,7 @@
 </span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="comment">// emits x (a char)
 </span></pre>
 <a name="spirit.karma.reference.char.char_generator.char__first__last_"></a><h6>
-<a name="id1111557"></a>
+<a name="id934570"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char__first__last_">char_(first,
             last)</a>
           </h6>
@@ -120,7 +120,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_generator.char__def_"></a><h6>
-<a name="id1111746"></a>
+<a name="id934812"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char__def_">char_(def)</a>
           </h6>
 <p>
@@ -140,7 +140,7 @@
             by the attribute.
           </p>
 <a name="spirit.karma.reference.char.char_generator.lit_ch_"></a><h6>
-<a name="id1111863"></a>
+<a name="id934963"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.lit_ch_">lit(ch)</a>
           </h6>
 <p>
@@ -180,7 +180,7 @@
 <span class="identifier">lit</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="comment">// c is a char
 </span></pre>
 <a name="spirit.karma.reference.char.char_generator.header"></a><h6>
-<a name="id1112218"></a>
+<a name="id935204"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/char/char.hpp&gt;
@@ -190,7 +190,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.char.char_generator.namespace"></a><h6>
-<a name="id1112293"></a>
+<a name="id935303"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -220,7 +220,7 @@
             Encoding Namespace</a>.
           </p>
 <a name="spirit.karma.reference.char.char_generator.model_of"></a><h6>
-<a name="id1112414"></a>
+<a name="id935446"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.model_of">Model
             of</a>
           </h6>
@@ -259,7 +259,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.char.char_generator.expression_semantics"></a><h6>
-<a name="id1112575"></a>
+<a name="id935638"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -509,7 +509,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.char.char_generator.attributes"></a><h6>
-<a name="id1113378"></a>
+<a name="id936613"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -668,7 +668,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_generator.complexity"></a><h6>
-<a name="id1114039"></a>
+<a name="id937424"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -691,7 +691,7 @@
             set, where N is the number of characters in the character set.
           </p>
 <a name="spirit.karma.reference.char.char_generator.example"></a><h6>
-<a name="id1114219"></a>
+<a name="id937659"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Directives</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="char/char_class.html" title="Character Classification Generators (alnum, digit, etc.)">
@@ -56,7 +56,7 @@
           and attribute handling (<code class="computeroutput"><span class="identifier">duplicate</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>, and <code class="computeroutput"><span class="identifier">skip</span><span class="special">[]</span></code>).
         </p>
 <a name="spirit.karma.reference.directive.module_header"></a><h6>
-<a name="id1119516"></a>
+<a name="id941570"></a>
           <a class="link" href="directive.html#spirit.karma.reference.directive.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Alignment Generator Directives (left_align[], center[], right_align[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Generator Directives">
 <link rel="prev" href="../directive.html" title="Generator Directives">
@@ -28,7 +28,7 @@
           Generator Directives (<code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.alignment.description"></a><h6>
-<a name="id1119632"></a>
+<a name="id941728"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             an arbitrary generator to create the padding.
           </p>
 <a name="spirit.karma.reference.directive.alignment.header"></a><h6>
-<a name="id1119649"></a>
+<a name="id941753"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.header">Header</a>
           </h6>
 <p>
@@ -65,7 +65,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.directive.alignment.namespace"></a><h6>
-<a name="id1119872"></a>
+<a name="id942045"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -97,7 +97,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.alignment.model_of"></a><h6>
-<a name="id1120024"></a>
+<a name="id942225"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.model_of">Model
             of</a>
           </h6>
@@ -129,7 +129,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.alignment.expression_semantics"></a><h6>
-<a name="id1120177"></a>
+<a name="id942405"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -411,7 +411,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.alignment.attributes"></a><h6>
-<a name="id1122050"></a>
+<a name="id943755"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.attributes">Attributes</a>
           </h6>
 <p>
@@ -632,7 +632,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.alignment.complexity"></a><h6>
-<a name="id1123876"></a>
+<a name="id945908"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -644,7 +644,7 @@
               of characters emitted by the embedded and padding generators.
             </p></blockquote></div>
 <a name="spirit.karma.reference.directive.alignment.example"></a><h6>
-<a name="id1123904"></a>
+<a name="id945949"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Directive for Temporary Output Buffering (buffer[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Generator Directives">
 <link rel="prev" href="maxwidth.html" title="Generator Directives Controlling the Maximum Field Width (maxwidth[])">
@@ -28,7 +28,7 @@
           Directive for Temporary Output Buffering (<code class="computeroutput"><span class="identifier">buffer</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.buffer.description"></a><h6>
-<a name="id1135459"></a>
+<a name="id956118"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.description">Description</a>
           </h6>
 <p>
@@ -43,7 +43,7 @@
             discarded otherwise.
           </p>
 <a name="spirit.karma.reference.directive.buffer.header"></a><h6>
-<a name="id1135488"></a>
+<a name="id956164"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/buffer.hpp&gt;
@@ -67,7 +67,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.buffer.model_of"></a><h6>
-<a name="id1135627"></a>
+<a name="id956335"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.model_of">Model
             of</a>
           </h6>
@@ -88,7 +88,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.buffer.expression_semantics"></a><h6>
-<a name="id1135714"></a>
+<a name="id956436"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -144,7 +144,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.buffer.attributes"></a><h6>
-<a name="id1135891"></a>
+<a name="id956653"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.attributes">Attributes</a>
           </h6>
 <p>
@@ -186,7 +186,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.buffer.complexity"></a><h6>
-<a name="id1136104"></a>
+<a name="id956854"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -196,7 +196,7 @@
               of characters buffered.
             </p></blockquote></div>
 <a name="spirit.karma.reference.directive.buffer.example"></a><h6>
-<a name="id1136125"></a>
+<a name="id956883"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/columns.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/columns.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/columns.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Directive Separating Output Into Columns (columns[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Generator Directives">
 <link rel="prev" href="duplicate.html" title="Generator Directive Duplicating Attributes (duplicate[])">
@@ -28,7 +28,7 @@
           Directive Separating Output Into Columns (<code class="computeroutput"><span class="identifier">columns</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.columns.description"></a><h6>
-<a name="id1141521"></a>
+<a name="id961341"></a>
             <a class="link" href="columns.html#spirit.karma.reference.directive.columns.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             special column separators.
           </p>
 <a name="spirit.karma.reference.directive.columns.header"></a><h6>
-<a name="id1141548"></a>
+<a name="id961381"></a>
             <a class="link" href="columns.html#spirit.karma.reference.directive.columns.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/columns.hpp&gt;
@@ -61,7 +61,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.columns.model_of"></a><h6>
-<a name="id1141688"></a>
+<a name="id961551"></a>
             <a class="link" href="columns.html#spirit.karma.reference.directive.columns.model_of">Model
             of</a>
           </h6>
@@ -98,7 +98,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.columns.expression_semantics"></a><h6>
-<a name="id1141821"></a>
+<a name="id961709"></a>
             <a class="link" href="columns.html#spirit.karma.reference.directive.columns.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -192,7 +192,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.columns.attributes"></a><h6>
-<a name="id1142435"></a>
+<a name="id962130"></a>
             <a class="link" href="columns.html#spirit.karma.reference.directive.columns.attributes">Attributes</a>
           </h6>
 <p>
@@ -285,7 +285,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.columns.complexity"></a><h6>
-<a name="id1143045"></a>
+<a name="id962847"></a>
             <a class="link" href="columns.html#spirit.karma.reference.directive.columns.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -296,7 +296,7 @@
               is the number of inserted column separators.
             </p></blockquote></div>
 <a name="spirit.karma.reference.directive.columns.example"></a><h6>
-<a name="id1143088"></a>
+<a name="id962907"></a>
             <a class="link" href="columns.html#spirit.karma.reference.directive.columns.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Directives Controlling Automatic Delimiting (verbatim[], no_delimit[], delimit[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Generator Directives">
 <link rel="prev" href="repeat.html" title="Repetition Generator Directive (repeat[])">
@@ -28,7 +28,7 @@
           Directives Controlling Automatic Delimiting (<code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">no_delimit</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.delimit.description"></a><h6>
-<a name="id1128112"></a>
+<a name="id949762"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             the directive <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code> (re-)enables automatic delimiting.
           </p>
 <a name="spirit.karma.reference.directive.delimit.header"></a><h6>
-<a name="id1128194"></a>
+<a name="id949877"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.header">Header</a>
           </h6>
 <p>
@@ -65,7 +65,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.directive.delimit.namespace"></a><h6>
-<a name="id1128417"></a>
+<a name="id950168"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -97,7 +97,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.delimit.model_of"></a><h6>
-<a name="id1128569"></a>
+<a name="id950348"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.model_of">Model
             of</a>
           </h6>
@@ -124,7 +124,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.delimit.expression_semantics"></a><h6>
-<a name="id1128696"></a>
+<a name="id950498"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -218,7 +218,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.delimit.attributes"></a><h6>
-<a name="id1129000"></a>
+<a name="id950876"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.attributes">Attributes</a>
           </h6>
 <p>
@@ -310,7 +310,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.delimit.complexity"></a><h6>
-<a name="id1130394"></a>
+<a name="id951549"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -319,7 +319,7 @@
               O(1).
             </p></blockquote></div>
 <a name="spirit.karma.reference.directive.delimit.example"></a><h6>
-<a name="id1130447"></a>
+<a name="id951622"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/duplicate.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/duplicate.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/duplicate.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Directive Duplicating Attributes (duplicate[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Generator Directives">
 <link rel="prev" href="omit.html" title="Generator Directives Consuming Attributes (omit[] and skip[])">
@@ -28,7 +28,7 @@
           Directive Duplicating Attributes (<code class="computeroutput"><span class="identifier">duplicate</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.duplicate.description"></a><h6>
-<a name="id1140333"></a>
+<a name="id959880"></a>
             <a class="link" href="duplicate.html#spirit.karma.reference.directive.duplicate.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             it does nothing.
           </p>
 <a name="spirit.karma.reference.directive.duplicate.header"></a><h6>
-<a name="id1140360"></a>
+<a name="id959920"></a>
             <a class="link" href="duplicate.html#spirit.karma.reference.directive.duplicate.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/duplicate.hpp&gt;
@@ -61,7 +61,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.duplicate.model_of"></a><h6>
-<a name="id1140500"></a>
+<a name="id960090"></a>
             <a class="link" href="duplicate.html#spirit.karma.reference.directive.duplicate.model_of">Model
             of</a>
           </h6>
@@ -82,7 +82,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.duplicate.expression_semantics"></a><h6>
-<a name="id1140587"></a>
+<a name="id960191"></a>
             <a class="link" href="duplicate.html#spirit.karma.reference.directive.duplicate.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -125,7 +125,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.duplicate.attributes"></a><h6>
-<a name="id1140696"></a>
+<a name="id960319"></a>
             <a class="link" href="duplicate.html#spirit.karma.reference.directive.duplicate.attributes">Attributes</a>
           </h6>
 <p>
@@ -177,7 +177,7 @@
             the corresponding expression will not compile.
           </p>
 <a name="spirit.karma.reference.directive.duplicate.complexity"></a><h6>
-<a name="id1140976"></a>
+<a name="id960657"></a>
             <a class="link" href="duplicate.html#spirit.karma.reference.directive.duplicate.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -185,7 +185,7 @@
               of the embedded generator.
             </p></blockquote></div>
 <a name="spirit.karma.reference.directive.duplicate.example"></a><h6>
-<a name="id1141007"></a>
+<a name="id960700"></a>
             <a class="link" href="duplicate.html#spirit.karma.reference.directive.duplicate.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Directives Controlling the Maximum Field Width (maxwidth[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Generator Directives">
 <link rel="prev" href="upperlower.html" title="Generator Directives Controlling Case Sensitivity (upper[], lower[])">
@@ -28,7 +28,7 @@
           Directives Controlling the Maximum Field Width (<code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.maxwidth.description"></a><h6>
-<a name="id1134112"></a>
+<a name="id954463"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             generated by the embedded generator.
           </p>
 <a name="spirit.karma.reference.directive.maxwidth.header"></a><h6>
-<a name="id1134140"></a>
+<a name="id954503"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/maxwidth.hpp&gt;
@@ -61,7 +61,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.maxwidth.model_of"></a><h6>
-<a name="id1134279"></a>
+<a name="id954673"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.model_of">Model
             of</a>
           </h6>
@@ -87,7 +87,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.maxwidth.expression_semantics"></a><h6>
-<a name="id1134392"></a>
+<a name="id954803"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -176,7 +176,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.maxwidth.attributes"></a><h6>
-<a name="id1134661"></a>
+<a name="id955141"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.attributes">Attributes</a>
           </h6>
 <p>
@@ -236,7 +236,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.maxwidth.complexity"></a><h6>
-<a name="id1134972"></a>
+<a name="id955503"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -246,7 +246,7 @@
               of characters generated by the maxwidth directive.
             </p></blockquote></div>
 <a name="spirit.karma.reference.directive.maxwidth.example"></a><h6>
-<a name="id1135010"></a>
+<a name="id955557"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Directives Consuming Attributes (omit[] and skip[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Generator Directives">
 <link rel="prev" href="buffer.html" title="Generator Directive for Temporary Output Buffering (buffer[])">
@@ -28,7 +28,7 @@
           Directives Consuming Attributes (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code> and <code class="computeroutput"><span class="identifier">skip</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.omit.description"></a><h6>
-<a name="id1136725"></a>
+<a name="id957632"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             to extract the exposed attribute type.
           </p>
 <a name="spirit.karma.reference.directive.omit.header"></a><h6>
-<a name="id1136785"></a>
+<a name="id957718"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/omit.hpp&gt;
@@ -73,7 +73,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.omit.model_of"></a><h6>
-<a name="id1136961"></a>
+<a name="id957932"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.model_of">Model
             of</a>
           </h6>
@@ -94,7 +94,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.omit.expression_semantics"></a><h6>
-<a name="id1137049"></a>
+<a name="id958034"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -152,7 +152,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.omit.attributes"></a><h6>
-<a name="id1137216"></a>
+<a name="id958233"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.attributes">Attributes</a>
           </h6>
 <p>
@@ -212,7 +212,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.omit.complexity"></a><h6>
-<a name="id1137505"></a>
+<a name="id958570"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -221,7 +221,7 @@
               generator directive is O(1) as it does not generate any output.
             </p></blockquote></div>
 <a name="spirit.karma.reference.directive.omit.example"></a><h6>
-<a name="id1137547"></a>
+<a name="id958629"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Repetition Generator Directive (repeat[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Generator Directives">
 <link rel="prev" href="alignment.html" title="Alignment Generator Directives (left_align[], center[], right_align[])">
@@ -28,7 +28,7 @@
           Generator Directive (<code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.repeat.description"></a><h6>
-<a name="id1125709"></a>
+<a name="id946813"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.description">Description</a>
           </h6>
 <p>
@@ -52,7 +52,7 @@
               </li>
 </ul></div>
 <a name="spirit.karma.reference.directive.repeat.header"></a><h6>
-<a name="id1125772"></a>
+<a name="id946897"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/repeat.hpp&gt;
@@ -62,7 +62,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.directive.repeat.namespace"></a><h6>
-<a name="id1125847"></a>
+<a name="id946997"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -88,7 +88,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.repeat.model_of"></a><h6>
-<a name="id1125962"></a>
+<a name="id947132"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.model_of">Model
             of</a>
           </h6>
@@ -116,7 +116,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.repeat.expression_semantics"></a><h6>
-<a name="id1126084"></a>
+<a name="id947274"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -235,7 +235,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.repeat.attributes"></a><h6>
-<a name="id1126506"></a>
+<a name="id947812"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.attributes">Attributes</a>
           </h6>
 <p>
@@ -383,7 +383,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.repeat.complexity"></a><h6>
-<a name="id1127404"></a>
+<a name="id948879"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -392,7 +392,7 @@
               itself is O(N), where N is the number of repetitions to execute.
             </p></blockquote></div>
 <a name="spirit.karma.reference.directive.repeat.example"></a><h6>
-<a name="id1127424"></a>
+<a name="id948908"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Directives Controlling Case Sensitivity (upper[], lower[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Generator Directives">
 <link rel="prev" href="delimit.html" title="Generator Directives Controlling Automatic Delimiting (verbatim[], no_delimit[], delimit[])">
@@ -28,7 +28,7 @@
           Directives Controlling Case Sensitivity (<code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.upperlower.description"></a><h6>
-<a name="id1131005"></a>
+<a name="id952310"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.description">Description</a>
           </h6>
 <p>
@@ -38,7 +38,7 @@
             Encoding Namespace</a>).
           </p>
 <a name="spirit.karma.reference.directive.upperlower.header"></a><h6>
-<a name="id1131072"></a>
+<a name="id952402"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/upper_lower_case.hpp&gt;
@@ -48,7 +48,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.directive.upperlower.namespace"></a><h6>
-<a name="id1131147"></a>
+<a name="id952501"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -77,7 +77,7 @@
             Encoding Namespace</a>.
           </p>
 <a name="spirit.karma.reference.directive.upperlower.model_of"></a><h6>
-<a name="id1131256"></a>
+<a name="id952627"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.model_of">Model
             of</a>
           </h6>
@@ -103,7 +103,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.upperlower.expression_semantics"></a><h6>
-<a name="id1131377"></a>
+<a name="id952772"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -215,7 +215,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.upperlower.attributes"></a><h6>
-<a name="id1131982"></a>
+<a name="id953526"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.attributes">Attributes</a>
           </h6>
 <p>
@@ -275,7 +275,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.upperlower.complexity"></a><h6>
-<a name="id1132314"></a>
+<a name="id953915"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -284,7 +284,7 @@
               directives, having no impact on runtime performance.
             </p></blockquote></div>
 <a name="spirit.karma.reference.directive.upperlower.example"></a><h6>
-<a name="id1132371"></a>
+<a name="id953991"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/create_generator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/create_generator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/create_generator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>API for Automatic Generator Creation</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../generate_api.html" title="Generator API">
 <link rel="prev" href="stream_api.html" title="Stream Based Generator API">
@@ -28,7 +28,7 @@
           for Automatic Generator Creation</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.generate_api.create_generator.description"></a><h6>
-<a name="id1085365"></a>
+<a name="id913579"></a>
             <a class="link" href="create_generator.html#spirit.karma.reference.generate_api.create_generator.description">Description</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             generator can be utilized to emit output for the provided attribute.
           </p>
 <a name="spirit.karma.reference.generate_api.create_generator.header"></a><h6>
-<a name="id1085384"></a>
+<a name="id913607"></a>
             <a class="link" href="create_generator.html#spirit.karma.reference.generate_api.create_generator.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auto.hpp&gt;
@@ -49,7 +49,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.generate_api.create_generator.namespace"></a><h6>
-<a name="id1087808"></a>
+<a name="id913707"></a>
             <a class="link" href="create_generator.html#spirit.karma.reference.generate_api.create_generator.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -73,7 +73,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generate_api.create_generator.synopsis"></a><h6>
-<a name="id1087933"></a>
+<a name="id913848"></a>
             <a class="link" href="create_generator.html#spirit.karma.reference.generate_api.create_generator.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">karma</span>
@@ -295,7 +295,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.generate_api.create_generator.template_parameters"></a><h6>
-<a name="id1088910"></a>
+<a name="id915048"></a>
             <a class="link" href="create_generator.html#spirit.karma.reference.generate_api.create_generator.template_parameters">Template
             parameters</a>
           </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/iterator_api.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/iterator_api.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/iterator_api.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Iterator Based Generator API</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../generate_api.html" title="Generator API">
 <link rel="prev" href="../generate_api.html" title="Generator API">
@@ -28,7 +28,7 @@
           Based Generator API</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.generate_api.iterator_api.description"></a><h6>
-<a name="id1081238"></a>
+<a name="id908533"></a>
             <a class="link" href="iterator_api.html#spirit.karma.reference.generate_api.iterator_api.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             reference that hold the attribute values to output.
           </p>
 <a name="spirit.karma.reference.generate_api.iterator_api.header"></a><h6>
-<a name="id1081271"></a>
+<a name="id908583"></a>
             <a class="link" href="iterator_api.html#spirit.karma.reference.generate_api.iterator_api.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/generate.hpp&gt;
@@ -73,7 +73,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.generate_api.iterator_api.namespace"></a><h6>
-<a name="id1081484"></a>
+<a name="id908861"></a>
             <a class="link" href="iterator_api.html#spirit.karma.reference.generate_api.iterator_api.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -107,7 +107,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generate_api.iterator_api.synopsis"></a><h6>
-<a name="id1081702"></a>
+<a name="id909115"></a>
             <a class="link" href="iterator_api.html#spirit.karma.reference.generate_api.iterator_api.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">karma</span>
@@ -208,7 +208,7 @@
             by using the other version of that function while passing <code class="computeroutput"><span class="identifier">delimit_flag</span><span class="special">::</span><span class="identifier">predelimit</span></code> to the corresponding argument.
           </p>
 <a name="spirit.karma.reference.generate_api.iterator_api.template_parameters"></a><h6>
-<a name="id1083182"></a>
+<a name="id910923"></a>
             <a class="link" href="iterator_api.html#spirit.karma.reference.generate_api.iterator_api.template_parameters">Template
             parameters</a>
           </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/stream_api.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/stream_api.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/generate_api/stream_api.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Stream Based Generator API</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../generate_api.html" title="Generator API">
 <link rel="prev" href="iterator_api.html" title="Iterator Based Generator API">
@@ -28,7 +28,7 @@
           Based Generator API</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.generate_api.stream_api.description"></a><h6>
-<a name="id1083395"></a>
+<a name="id911166"></a>
             <a class="link" href="stream_api.html#spirit.karma.reference.generate_api.stream_api.description">Description</a>
           </h6>
 <p>
@@ -43,7 +43,7 @@
             reference that hold the attribute values to output.
           </p>
 <a name="spirit.karma.reference.generate_api.stream_api.header"></a><h6>
-<a name="id1083439"></a>
+<a name="id911226"></a>
             <a class="link" href="stream_api.html#spirit.karma.reference.generate_api.stream_api.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/stream/format_manip.hpp&gt;
@@ -75,7 +75,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.generate_api.stream_api.namespace"></a><h6>
-<a name="id1083651"></a>
+<a name="id911505"></a>
             <a class="link" href="stream_api.html#spirit.karma.reference.generate_api.stream_api.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -109,7 +109,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generate_api.stream_api.synopsis"></a><h6>
-<a name="id1083867"></a>
+<a name="id911759"></a>
             <a class="link" href="stream_api.html#spirit.karma.reference.generate_api.stream_api.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">karma</span>
@@ -204,7 +204,7 @@
             by using the other version of that manipulator while passing <code class="computeroutput"><span class="identifier">delimit_flag</span><span class="special">::</span><span class="identifier">predelimit</span></code> to the corresponding argument.
           </p>
 <a name="spirit.karma.reference.generate_api.stream_api.template_parameters"></a><h6>
-<a name="id1085190"></a>
+<a name="id913379"></a>
             <a class="link" href="stream_api.html#spirit.karma.reference.generate_api.stream_api.template_parameters">Template
             parameters</a>
           </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>BinaryGenerator</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../generator_concepts.html" title="Generator Concepts">
 <link rel="prev" href="unarygenerator.html" title="UnaryGenerator">
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.generator_concepts.binarygenerator"></a><a class="link" href="binarygenerator.html" title="BinaryGenerator">BinaryGenerator</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.generator_concepts.binarygenerator.description"></a><h6>
-<a name="id1072300"></a>
+<a name="id901464"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.description">Description</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             Design Pattern.
           </p>
 <a name="spirit.karma.reference.generator_concepts.binarygenerator.refinement_of"></a><h6>
-<a name="id1072344"></a>
+<a name="id901531"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.refinement_of">Refinement
             of</a>
           </h6>
@@ -60,7 +60,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.generator_concepts.binarygenerator.valid_expressions"></a><h6>
-<a name="id1072420"></a>
+<a name="id901623"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -129,7 +129,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.binarygenerator.type_expressions"></a><h6>
-<a name="id1072589"></a>
+<a name="id901819"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.type_expressions">Type
             Expressions</a>
           </h6>
@@ -194,7 +194,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.binarygenerator.invariants"></a><h6>
-<a name="id1072792"></a>
+<a name="id902057"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.invariants">Invariants</a>
           </h6>
 <p>
@@ -210,7 +210,7 @@
               </li>
 </ul></div>
 <a name="spirit.karma.reference.generator_concepts.binarygenerator.models"></a><h6>
-<a name="id1072935"></a>
+<a name="id902240"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.models">Models</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../generator_concepts.html" title="Generator Concepts">
 <link rel="prev" href="../generator_concepts.html" title="Generator Concepts">
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.generator_concepts.generator"></a><a class="link" href="generator.html" title="Generator">Generator</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.generator_concepts.generator.description"></a><h6>
-<a name="id1068242"></a>
+<a name="id898907"></a>
             <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.description">Description</a>
           </h6>
 <p>
@@ -81,7 +81,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.generator_concepts.generator.valid_expressions"></a><h6>
-<a name="id1068506"></a>
+<a name="id899232"></a>
             <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -164,7 +164,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.generator.type_expressions"></a><h6>
-<a name="id1068778"></a>
+<a name="id899561"></a>
             <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.type_expressions">Type
             Expressions</a>
           </h6>
@@ -231,7 +231,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.generator.postcondition"></a><h6>
-<a name="id1069049"></a>
+<a name="id899888"></a>
             <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.postcondition">Postcondition</a>
           </h6>
 <p>
@@ -253,7 +253,7 @@
               </li>
 </ul></div>
 <a name="spirit.karma.reference.generator_concepts.generator.models"></a><h6>
-<a name="id1069129"></a>
+<a name="id899989"></a>
             <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.models">Models</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>NaryGenerator</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../generator_concepts.html" title="Generator Concepts">
 <link rel="prev" href="binarygenerator.html" title="BinaryGenerator">
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.generator_concepts.narygenerator"></a><a class="link" href="narygenerator.html" title="NaryGenerator">NaryGenerator</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.generator_concepts.narygenerator.description"></a><h6>
-<a name="id1072994"></a>
+<a name="id902317"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             Design Pattern.
           </p>
 <a name="spirit.karma.reference.generator_concepts.narygenerator.refinement_of"></a><h6>
-<a name="id1073024"></a>
+<a name="id902362"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.refinement_of">Refinement
             of</a>
           </h6>
@@ -58,7 +58,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.generator_concepts.narygenerator.valid_expressions"></a><h6>
-<a name="id1073099"></a>
+<a name="id902454"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -109,7 +109,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.narygenerator.type_expressions"></a><h6>
-<a name="id1073225"></a>
+<a name="id902600"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.type_expressions">Type
             Expressions</a>
           </h6>
@@ -162,7 +162,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.narygenerator.invariants"></a><h6>
-<a name="id1073396"></a>
+<a name="id902802"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.invariants">Invariants</a>
           </h6>
 <p>
@@ -174,7 +174,7 @@
                 <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">&gt;::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
               </li></ul></div>
 <a name="spirit.karma.reference.generator_concepts.narygenerator.models"></a><h6>
-<a name="id1073483"></a>
+<a name="id902914"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.models">Models</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/nonterminal.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/nonterminal.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/nonterminal.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Nonterminal</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../generator_concepts.html" title="Generator Concepts">
 <link rel="prev" href="narygenerator.html" title="NaryGenerator">
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.generator_concepts.nonterminal"></a><a class="link" href="nonterminal.html" title="Nonterminal">Nonterminal</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.generator_concepts.nonterminal.description"></a><h6>
-<a name="id1074316"></a>
+<a name="id903015"></a>
             <a class="link" href="nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal.description">Description</a>
           </h6>
 <p>
@@ -38,7 +38,7 @@
             in recursive descent generation.
           </p>
 <a name="spirit.karma.reference.generator_concepts.nonterminal.refinement_of"></a><h6>
-<a name="id1074338"></a>
+<a name="id903049"></a>
             <a class="link" href="nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal.refinement_of">Refinement
             of</a>
           </h6>
@@ -46,7 +46,7 @@
               <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.generator_concepts.nonterminal.signature"></a><h6>
-<a name="id1074370"></a>
+<a name="id903092"></a>
             <a class="link" href="nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal.signature">Signature</a>
           </h6>
 <p>
@@ -63,7 +63,7 @@
             inherited attributes.
           </p>
 <a name="spirit.karma.reference.generator_concepts.nonterminal.attributes"></a><h6>
-<a name="id1074467"></a>
+<a name="id903216"></a>
             <a class="link" href="nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal.attributes">Attributes</a>
           </h6>
 <p>
@@ -76,7 +76,7 @@
 <pre class="programlisting"><span class="identifier">r</span><span class="special">(</span><span class="identifier">expr</span><span class="special">)</span> <span class="comment">// Evaluate expr at parse time and pass the result to the Nonterminal r
 </span></pre>
 <a name="spirit.karma.reference.generator_concepts.nonterminal._code__phrase_role__identifier___val__phrase___code_"></a><h6>
-<a name="id1074512"></a>
+<a name="id903282"></a>
             <a class="link" href="nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal._code__phrase_role__identifier___val__phrase___code_"><code class="computeroutput"><span class="identifier">_val</span></code></a>
           </h6>
 <p>
@@ -86,7 +86,7 @@
             reference to the Nonterminal's attribute.
           </p>
 <a name="spirit.karma.reference.generator_concepts.nonterminal._code__phrase_role__identifier___r1__phrase___code_____code__phrase_role__identifier__r10__phrase___code_"></a><h6>
-<a name="id1074579"></a>
+<a name="id903380"></a>
             <a class="link" href="nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal._code__phrase_role__identifier___r1__phrase___code_____code__phrase_role__identifier__r10__phrase___code_"><code class="computeroutput"><span class="identifier">_r1</span></code>...<code class="computeroutput"><span class="identifier">r10</span></code></a>
           </h6>
 <p>
@@ -96,7 +96,7 @@
             refer to the Nonterminal's inherited attributes.
           </p>
 <a name="spirit.karma.reference.generator_concepts.nonterminal.locals"></a><h6>
-<a name="id1074663"></a>
+<a name="id903493"></a>
             <a class="link" href="nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal.locals">Locals</a>
           </h6>
 <p>
@@ -168,7 +168,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.generator_concepts.nonterminal.valid_expressions"></a><h6>
-<a name="id1075181"></a>
+<a name="id904123"></a>
             <a class="link" href="nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -274,7 +274,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.nonterminal.type_expressions"></a><h6>
-<a name="id1075508"></a>
+<a name="id904502"></a>
             <a class="link" href="nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal.type_expressions">Type
             Expressions</a>
           </h6>
@@ -329,7 +329,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.nonterminal.models"></a><h6>
-<a name="id1075651"></a>
+<a name="id904664"></a>
             <a class="link" href="nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal.models">Models</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>PrimitiveGenerator</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../generator_concepts.html" title="Generator Concepts">
 <link rel="prev" href="generator.html" title="Generator">
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.generator_concepts.primitivegenerator"></a><a class="link" href="primitivegenerator.html" title="PrimitiveGenerator">PrimitiveGenerator</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.generator_concepts.primitivegenerator.description"></a><h6>
-<a name="id1069172"></a>
+<a name="id900037"></a>
             <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.description">Description</a>
           </h6>
 <p>
@@ -35,7 +35,7 @@
             that the client uses to build more complex generators.
           </p>
 <a name="spirit.karma.reference.generator_concepts.primitivegenerator.refinement_of"></a><h6>
-<a name="id1069193"></a>
+<a name="id900066"></a>
             <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.refinement_of">Refinement
             of</a>
           </h6>
@@ -43,7 +43,7 @@
               <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.generator_concepts.primitivegenerator.post_delimit"></a><h6>
-<a name="id1069223"></a>
+<a name="id900109"></a>
             <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.post_delimit">Post-delimit</a>
           </h6>
 <p>
@@ -56,7 +56,7 @@
 <pre class="programlisting"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">delimit_out</span><span class="special">(</span><span class="identifier">sink</span><span class="special">,</span> <span class="identifier">delimit</span><span class="special">);</span>
 </pre>
 <a name="spirit.karma.reference.generator_concepts.primitivegenerator.type_expressions"></a><h6>
-<a name="id1069296"></a>
+<a name="id900211"></a>
             <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.type_expressions">Type
             Expressions</a>
           </h6>
@@ -95,7 +95,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.primitivegenerator.models"></a><h6>
-<a name="id1071420"></a>
+<a name="id900376"></a>
             <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.models">Models</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>UnaryGenerator</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../generator_concepts.html" title="Generator Concepts">
 <link rel="prev" href="primitivegenerator.html" title="PrimitiveGenerator">
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.generator_concepts.unarygenerator"></a><a class="link" href="unarygenerator.html" title="UnaryGenerator">UnaryGenerator</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.generator_concepts.unarygenerator.description"></a><h6>
-<a name="id1071526"></a>
+<a name="id900504"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             following the Delegate Design Pattern.
           </p>
 <a name="spirit.karma.reference.generator_concepts.unarygenerator.refinement_of"></a><h6>
-<a name="id1071546"></a>
+<a name="id900534"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.refinement_of">Refinement
             of</a>
           </h6>
@@ -57,7 +57,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.generator_concepts.unarygenerator.valid_expressions"></a><h6>
-<a name="id1071622"></a>
+<a name="id900625"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -107,7 +107,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.unarygenerator.type_expressions"></a><h6>
-<a name="id1071742"></a>
+<a name="id900764"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.type_expressions">Type
             Expressions</a>
           </h6>
@@ -160,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.unarygenerator.invariants"></a><h6>
-<a name="id1071912"></a>
+<a name="id900966"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.invariants">Invariants</a>
           </h6>
 <p>
@@ -171,7 +171,7 @@
                 <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special">&lt;</span><span class="identifier">G</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">&gt;::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
               </li></ul></div>
 <a name="spirit.karma.reference.generator_concepts.unarygenerator.models"></a><h6>
-<a name="id1072000"></a>
+<a name="id901077"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.models">Models</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Nonterminal Generators</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="directive/columns.html" title="Generator Directive Separating Output Into Columns (columns[])">
@@ -33,7 +33,7 @@
           Grammar</a></span></dt>
 </dl></div>
 <a name="spirit.karma.reference.nonterminal.module_headers"></a><h6>
-<a name="id1143687"></a>
+<a name="id963651"></a>
           <a class="link" href="nonterminal.html#spirit.karma.reference.nonterminal.module_headers">Module
           Headers</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal/grammar.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal/grammar.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal/grammar.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Grammar</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../nonterminal.html" title="Nonterminal Generators">
 <link rel="prev" href="rule.html" title="Generator Rule">
@@ -28,7 +28,7 @@
           Grammar</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.nonterminal.grammar.description"></a><h6>
-<a name="id1148356"></a>
+<a name="id966162"></a>
             <a class="link" href="grammar.html#spirit.karma.reference.nonterminal.grammar.description">Description</a>
           </h6>
 <p>
@@ -38,7 +38,7 @@
             Grammars can be composed to form more complex grammars.
           </p>
 <a name="spirit.karma.reference.nonterminal.grammar.header"></a><h6>
-<a name="id1148390"></a>
+<a name="id966212"></a>
             <a class="link" href="grammar.html#spirit.karma.reference.nonterminal.grammar.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/nonterminal/grammar.hpp&gt;
@@ -48,7 +48,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.nonterminal.grammar.namespace"></a><h6>
-<a name="id1148464"></a>
+<a name="id966311"></a>
             <a class="link" href="grammar.html#spirit.karma.reference.nonterminal.grammar.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -65,14 +65,14 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.nonterminal.grammar.synopsis"></a><h6>
-<a name="id1148545"></a>
+<a name="id966405"></a>
             <a class="link" href="grammar.html#spirit.karma.reference.nonterminal.grammar.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A3</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">grammar</span><span class="special">;</span>
 </pre>
 <a name="spirit.karma.reference.nonterminal.grammar.template_parameters"></a><h6>
-<a name="id1148638"></a>
+<a name="id966520"></a>
             <a class="link" href="grammar.html#spirit.karma.reference.nonterminal.grammar.template_parameters">Template
             parameters</a>
           </h6>
@@ -227,7 +227,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.nonterminal.grammar.model_of"></a><h6>
-<a name="id1149019"></a>
+<a name="id966962"></a>
             <a class="link" href="grammar.html#spirit.karma.reference.nonterminal.grammar.model_of">Model
             of</a>
           </h6>
@@ -244,7 +244,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.nonterminal.grammar.expression_semantics"></a><h6>
-<a name="id1149078"></a>
+<a name="id967032"></a>
             <a class="link" href="grammar.html#spirit.karma.reference.nonterminal.grammar.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -311,7 +311,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.nonterminal.grammar.attributes"></a><h6>
-<a name="id1149394"></a>
+<a name="id967408"></a>
             <a class="link" href="grammar.html#spirit.karma.reference.nonterminal.grammar.attributes">Attributes</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -319,14 +319,14 @@
               its consumed attribute. See <a class="link" href="../generator_concepts/nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal.attributes"><code class="computeroutput"><span class="identifier">Attribute</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.nonterminal.grammar.complexity"></a><h6>
-<a name="id1150526"></a>
+<a name="id967462"></a>
             <a class="link" href="grammar.html#spirit.karma.reference.nonterminal.grammar.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               The complexity is defined by the complexity of the its definition.
             </p></blockquote></div>
 <a name="spirit.karma.reference.nonterminal.grammar.example"></a><h6>
-<a name="id1150546"></a>
+<a name="id967489"></a>
             <a class="link" href="grammar.html#spirit.karma.reference.nonterminal.grammar.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal/rule.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal/rule.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/nonterminal/rule.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Rule</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../nonterminal.html" title="Nonterminal Generators">
 <link rel="prev" href="../nonterminal.html" title="Nonterminal Generators">
@@ -28,7 +28,7 @@
           Rule</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.nonterminal.rule.description"></a><h6>
-<a name="id1143771"></a>
+<a name="id963764"></a>
             <a class="link" href="rule.html#spirit.karma.reference.nonterminal.rule.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             descent output generation.
           </p>
 <a name="spirit.karma.reference.nonterminal.rule.header"></a><h6>
-<a name="id1143792"></a>
+<a name="id963798"></a>
             <a class="link" href="rule.html#spirit.karma.reference.nonterminal.rule.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/nonterminal/rule.hpp&gt;
@@ -51,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.nonterminal.rule.namespace"></a><h6>
-<a name="id1143867"></a>
+<a name="id963897"></a>
             <a class="link" href="rule.html#spirit.karma.reference.nonterminal.rule.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -68,14 +68,14 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.nonterminal.rule.synopsis"></a><h6>
-<a name="id1143947"></a>
+<a name="id963992"></a>
             <a class="link" href="rule.html#spirit.karma.reference.nonterminal.rule.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A3</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">rule</span><span class="special">;</span>
 </pre>
 <a name="spirit.karma.reference.nonterminal.rule.template_parameters"></a><h6>
-<a name="id1144041"></a>
+<a name="id964107"></a>
             <a class="link" href="rule.html#spirit.karma.reference.nonterminal.rule.template_parameters">Template
             parameters</a>
           </h6>
@@ -230,7 +230,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.nonterminal.rule.model_of"></a><h6>
-<a name="id1144421"></a>
+<a name="id964549"></a>
             <a class="link" href="rule.html#spirit.karma.reference.nonterminal.rule.model_of">Model
             of</a>
           </h6>
@@ -262,7 +262,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.nonterminal.rule.expression_semantics"></a><h6>
-<a name="id1144583"></a>
+<a name="id964745"></a>
             <a class="link" href="rule.html#spirit.karma.reference.nonterminal.rule.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -393,7 +393,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.nonterminal.rule.attributes"></a><h6>
-<a name="id1147704"></a>
+<a name="id965350"></a>
             <a class="link" href="rule.html#spirit.karma.reference.nonterminal.rule.attributes">Attributes</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -401,7 +401,7 @@
               The consumed attribute of the rule. See <a class="link" href="../generator_concepts/nonterminal.html#spirit.karma.reference.generator_concepts.nonterminal.attributes"><code class="computeroutput"><span class="identifier">Attribute</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.nonterminal.rule.complexity"></a><h6>
-<a name="id1147741"></a>
+<a name="id965404"></a>
             <a class="link" href="rule.html#spirit.karma.reference.nonterminal.rule.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -409,7 +409,7 @@
               <code class="computeroutput"><span class="identifier">g</span></code>
             </p></blockquote></div>
 <a name="spirit.karma.reference.nonterminal.rule.example"></a><h6>
-<a name="id1147768"></a>
+<a name="id965441"></a>
             <a class="link" href="rule.html#spirit.karma.reference.nonterminal.rule.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Numeric Generators</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="nonterminal/grammar.html" title="Generator Grammar">
@@ -58,7 +58,7 @@
           tight generic C++ code that rivals, if not surpasses C.
         </p>
 <a name="spirit.karma.reference.numeric.module_header"></a><h6>
-<a name="id1151264"></a>
+<a name="id968376"></a>
           <a class="link" href="numeric.html#spirit.karma.reference.numeric.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/numeric.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Boolean Generators (bool_)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../numeric.html" title="Numeric Generators">
 <link rel="prev" href="real_number.html" title="Real Number Generators (float_, double_, etc.)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">bool_</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.numeric.boolean.description"></a><h6>
-<a name="id1169917"></a>
+<a name="id985230"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.description">Description</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
             a template class. Template parameters fine tune its behavior.
           </p>
 <a name="spirit.karma.reference.numeric.boolean.header"></a><h6>
-<a name="id1169971"></a>
+<a name="id985292"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/numeric/bool.hpp&gt;
@@ -52,7 +52,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.numeric.boolean.namespace"></a><h6>
-<a name="id1170045"></a>
+<a name="id985376"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -105,7 +105,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.boolean.synopsis"></a><h6>
-<a name="id1170259"></a>
+<a name="id985605"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
@@ -114,7 +114,7 @@
 <span class="keyword">struct</span> <span class="identifier">bool_generator</span><span class="special">;</span>
 </pre>
 <a name="spirit.karma.reference.numeric.boolean.template_parameters"></a><h6>
-<a name="id1170328"></a>
+<a name="id985681"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.template_parameters">Template
             parameters</a>
           </h6>
@@ -179,7 +179,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.boolean.model_of"></a><h6>
-<a name="id1170477"></a>
+<a name="id985828"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.model_of">Model
             of</a>
           </h6>
@@ -203,7 +203,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.numeric.boolean.expression_semantics"></a><h6>
-<a name="id1170584"></a>
+<a name="id985935"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -397,7 +397,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.boolean.additional_requirements"></a><h6>
-<a name="id1171167"></a>
+<a name="id986564"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -413,7 +413,7 @@
                 must be (safely) convertible to <code class="computeroutput"><span class="keyword">bool</span></code>
               </li></ul></div>
 <a name="spirit.karma.reference.numeric.boolean.attributes"></a><h6>
-<a name="id1171249"></a>
+<a name="id986652"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -528,7 +528,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.boolean.boolean_formatting_policies"></a><h6>
-<a name="id1171630"></a>
+<a name="id987063"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.boolean_formatting_policies">Boolean
             Formatting Policies</a>
           </h6>
@@ -562,7 +562,7 @@
             default for <code class="computeroutput"><span class="identifier">B</span></code> is <code class="computeroutput"><span class="keyword">bool</span></code>.
           </p>
 <a name="spirit.karma.reference.numeric.boolean.boolean_formatting_policy_expression_semantics"></a><h6>
-<a name="id1172053"></a>
+<a name="id987540"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.boolean_formatting_policy_expression_semantics">Boolean
             Formatting Policy Expression Semantics</a>
           </h6>
@@ -713,7 +713,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.boolean.complexity"></a><h6>
-<a name="id1173008"></a>
+<a name="id988426"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -721,7 +721,7 @@
               number of characters needed to represent the generated boolean.
             </p></blockquote></div>
 <a name="spirit.karma.reference.numeric.boolean.example"></a><h6>
-<a name="id1173035"></a>
+<a name="id988456"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Real Number Generators (float_, double_, etc.)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../numeric.html" title="Numeric Generators">
 <link rel="prev" href="signed_int.html" title="Signed Integer Number Generators (int_, etc.)">
@@ -29,7 +29,7 @@
           <code class="computeroutput"><span class="identifier">double_</span></code>, etc.)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.numeric.real_number.description"></a><h6>
-<a name="id1161376"></a>
+<a name="id976768"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.description">Description</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
             requirements (for more information about the requirements, see <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.additional_requirements">below</a>).
           </p>
 <a name="spirit.karma.reference.numeric.real_number.header"></a><h6>
-<a name="id1161420"></a>
+<a name="id976835"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/numeric/real.hpp&gt;
@@ -52,7 +52,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.numeric.real_number.namespace"></a><h6>
-<a name="id1161494"></a>
+<a name="id976935"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -105,14 +105,14 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.real_number.synopsis"></a><h6>
-<a name="id1161708"></a>
+<a name="id977191"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Num</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">RealPolicies</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">real_generator</span><span class="special">;</span>
 </pre>
 <a name="spirit.karma.reference.numeric.real_number.template_parameters"></a><h6>
-<a name="id1161775"></a>
+<a name="id977275"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.template_parameters">Template
             parameters</a>
           </h6>
@@ -181,7 +181,7 @@
             see <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.real_number_formatting_policies">below</a>.
           </p>
 <a name="spirit.karma.reference.numeric.real_number.model_of"></a><h6>
-<a name="id1161939"></a>
+<a name="id977461"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.model_of">Model
             of</a>
           </h6>
@@ -205,7 +205,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.numeric.real_number.expression_semantics"></a><h6>
-<a name="id1162040"></a>
+<a name="id977581"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -378,7 +378,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.real_number.additional_requirements"></a><h6>
-<a name="id1162986"></a>
+<a name="id978338"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -417,7 +417,7 @@
               </li>
 </ul></div>
 <a name="spirit.karma.reference.numeric.real_number.attributes"></a><h6>
-<a name="id1163311"></a>
+<a name="id978768"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -588,7 +588,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.real_number.real_number_formatting_policies"></a><h6>
-<a name="id1163868"></a>
+<a name="id979439"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.real_number_formatting_policies">Real
             Number Formatting Policies</a>
           </h6>
@@ -620,7 +620,7 @@
             will be used as the attribute type of the created real number generator.
           </p>
 <a name="spirit.karma.reference.numeric.real_number.real_number_formatting_policy_expression_semantics"></a><h6>
-<a name="id1164221"></a>
+<a name="id979884"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.real_number_formatting_policy_expression_semantics">Real
             Number Formatting Policy Expression Semantics</a>
           </h6>
@@ -1139,7 +1139,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.real_number.complexity"></a><h6>
-<a name="id1168430"></a>
+<a name="id672981"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -1147,7 +1147,7 @@
               number of digits needed to represent the generated real number.
             </p></blockquote></div>
 <a name="spirit.karma.reference.numeric.real_number.example"></a><h6>
-<a name="id1168458"></a>
+<a name="id673014"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Signed Integer Number Generators (int_, etc.)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../numeric.html" title="Numeric Generators">
 <link rel="prev" href="unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)">
@@ -29,7 +29,7 @@
           etc.)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.numeric.signed_int.description"></a><h6>
-<a name="id1154930"></a>
+<a name="id972694"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.description">Description</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
             see <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.additional_requirements">below</a>).
           </p>
 <a name="spirit.karma.reference.numeric.signed_int.header"></a><h6>
-<a name="id1154998"></a>
+<a name="id972798"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/numeric/int.hpp&gt;
@@ -58,7 +58,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.numeric.signed_int.namespace"></a><h6>
-<a name="id1158087"></a>
+<a name="id972897"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -130,7 +130,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.signed_int.synopsis"></a><h6>
-<a name="id1158389"></a>
+<a name="id973267"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
@@ -140,7 +140,7 @@
 <span class="keyword">struct</span> <span class="identifier">int_generator</span><span class="special">;</span>
 </pre>
 <a name="spirit.karma.reference.numeric.signed_int.template_parameters"></a><h6>
-<a name="id1158473"></a>
+<a name="id973370"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.template_parameters">Template
             parameters</a>
           </h6>
@@ -224,7 +224,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.signed_int.model_of"></a><h6>
-<a name="id1158651"></a>
+<a name="id973565"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.model_of">Model
             of</a>
           </h6>
@@ -262,7 +262,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.numeric.signed_int.expression_semantics"></a><h6>
-<a name="id1158839"></a>
+<a name="id973798"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -443,7 +443,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.signed_int.additional_requirements"></a><h6>
-<a name="id1159486"></a>
+<a name="id974615"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -498,7 +498,7 @@
               </li>
 </ul></div>
 <a name="spirit.karma.reference.numeric.signed_int.attributes"></a><h6>
-<a name="id1159960"></a>
+<a name="id975241"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -697,7 +697,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.signed_int.complexity"></a><h6>
-<a name="id1160788"></a>
+<a name="id976031"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -705,7 +705,7 @@
               number of digits needed to represent the generated integer number
             </p></blockquote></div>
 <a name="spirit.karma.reference.numeric.signed_int.example"></a><h6>
-<a name="id1160816"></a>
+<a name="id976069"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Unsigned Integer Number Generators (uint_, etc.)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../numeric.html" title="Numeric Generators">
 <link rel="prev" href="../numeric.html" title="Numeric Generators">
@@ -29,7 +29,7 @@
           etc.)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.description"></a><h6>
-<a name="id1151355"></a>
+<a name="id968502"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.description">Description</a>
           </h6>
 <p>
@@ -44,7 +44,7 @@
             a template class. Template parameters fine tune its behavior.
           </p>
 <a name="spirit.karma.reference.numeric.unsigned_int.header"></a><h6>
-<a name="id1151405"></a>
+<a name="id968581"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/numeric/uint.hpp&gt;
@@ -54,7 +54,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.numeric.unsigned_int.namespace"></a><h6>
-<a name="id1151480"></a>
+<a name="id968680"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -145,7 +145,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.synopsis"></a><h6>
-<a name="id1151898"></a>
+<a name="id969187"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
@@ -154,7 +154,7 @@
 <span class="keyword">struct</span> <span class="identifier">uint_generator</span><span class="special">;</span>
 </pre>
 <a name="spirit.karma.reference.numeric.unsigned_int.template_parameters"></a><h6>
-<a name="id1151968"></a>
+<a name="id969273"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.template_parameters">Template
             parameters</a>
           </h6>
@@ -220,7 +220,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.model_of"></a><h6>
-<a name="id1152104"></a>
+<a name="id969419"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.model_of">Model
             of</a>
           </h6>
@@ -252,7 +252,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.numeric.unsigned_int.expression_semantics"></a><h6>
-<a name="id1152256"></a>
+<a name="id969609"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -298,9 +298,9 @@
                     <p>
                       
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ushort</span>
-<span class="identifier">uint</span>
-<span class="identifier">ulong</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ushort_</span>
+<span class="identifier">uint_</span>
+<span class="identifier">ulong_</span>
 <span class="identifier">ulong_long</span></pre>
 <p>
                     </p>
@@ -319,9 +319,9 @@
                     <p>
                       
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ushort</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
-<span class="identifier">uint</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
-<span class="identifier">ulong</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ushort_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">uint_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">ulong_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
 <span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></pre>
 <p>
                     </p>
@@ -461,7 +461,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.additional_requirements"></a><h6>
-<a name="id1153111"></a>
+<a name="id970427"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -513,7 +513,7 @@
               </li>
 </ul></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.attributes"></a><h6>
-<a name="id1153545"></a>
+<a name="id971004"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -549,7 +549,7 @@
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">ushort</span></code>
+ <code class="computeroutput"><span class="identifier">ushort_</span></code>
                     </p>
                   </td>
 <td>
@@ -562,7 +562,7 @@
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">ushort</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
+ <code class="computeroutput"><span class="identifier">ushort_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
                     </p>
                   </td>
 <td>
@@ -577,7 +577,7 @@
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">uint</span></code>
+ <code class="computeroutput"><span class="identifier">uint_</span></code>
                     </p>
                   </td>
 <td>
@@ -590,7 +590,7 @@
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">uint</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
+ <code class="computeroutput"><span class="identifier">uint_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
                     </p>
                   </td>
 <td>
@@ -605,7 +605,7 @@
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">ulong</span></code>
+ <code class="computeroutput"><span class="identifier">ulong_</span></code>
                     </p>
                   </td>
 <td>
@@ -618,7 +618,7 @@
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">ulong</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
+ <code class="computeroutput"><span class="identifier">ulong_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
                     </p>
                   </td>
 <td>
@@ -752,7 +752,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.complexity"></a><h6>
-<a name="id1154356"></a>
+<a name="id971978"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -760,7 +760,7 @@
               number of digits needed to represent the generated integer number
             </p></blockquote></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.example"></a><h6>
-<a name="id1154384"></a>
+<a name="id972016"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/operator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Operators</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="numeric/boolean.html" title="Boolean Generators (bool_)">
@@ -71,7 +71,7 @@
           and the <span class="emphasis"><em>not</em></span> predicate (unary <code class="computeroutput"><span class="special">!</span></code>).
         </p>
 <a name="spirit.karma.reference.operator.module_header"></a><h6>
-<a name="id1173719"></a>
+<a name="id989217"></a>
           <a class="link" href="operator.html#spirit.karma.reference.operator.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/operator.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Alternative Generator (a | b)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Generator Operators">
 <link rel="prev" href="sequence.html" title="Sequence Generator (a &lt;&lt; b)">
@@ -29,7 +29,7 @@
           <span class="identifier">b</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.operator.alternative.description"></a><h6>
-<a name="id1176649"></a>
+<a name="id991252"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.description">Description</a>
           </h6>
 <p>
@@ -38,7 +38,7 @@
             from left to right until one of them succeeds.
           </p>
 <a name="spirit.karma.reference.operator.alternative.header"></a><h6>
-<a name="id1176666"></a>
+<a name="id991277"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/operator/alternative.hpp&gt;
@@ -48,7 +48,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.operator.alternative.model_of"></a><h6>
-<a name="id1176740"></a>
+<a name="id991377"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.model_of">Model
             of</a>
           </h6>
@@ -56,7 +56,7 @@
               <a class="link" href="../generator_concepts/narygenerator.html" title="NaryGenerator"><code class="computeroutput"><span class="identifier">NaryGenerator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.alternative.expression_semantics"></a><h6>
-<a name="id1176770"></a>
+<a name="id991419"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -108,7 +108,7 @@
             an element succeeded.
           </p>
 <a name="spirit.karma.reference.operator.alternative.attributes"></a><h6>
-<a name="id1176884"></a>
+<a name="id991560"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.attributes">Attributes</a>
           </h6>
 <p>
@@ -175,7 +175,7 @@
             an example of this behavior.
           </p>
 <a name="spirit.karma.reference.operator.alternative.complexity"></a><h6>
-<a name="id1177406"></a>
+<a name="id992182"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -184,7 +184,7 @@
               itself is O(N), where N is the number of elements in the alternative.
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.alternative.example"></a><h6>
-<a name="id1177427"></a>
+<a name="id992211"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>And-Predicate Generator (&amp;a)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Generator Operators">
 <link rel="prev" href="optional.html" title="Optional Generator (-a)">
@@ -28,7 +28,7 @@
           Generator (<code class="computeroutput"><span class="special">&amp;</span><span class="identifier">a</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.operator.and_predicate.description"></a><h6>
-<a name="id1185034"></a>
+<a name="id998789"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             succeeds.
           </p>
 <a name="spirit.karma.reference.operator.and_predicate.header"></a><h6>
-<a name="id1185054"></a>
+<a name="id998815"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/operator/and_predicate.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.operator.and_predicate.model_of"></a><h6>
-<a name="id1185128"></a>
+<a name="id998914"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.model_of">Model
             of</a>
           </h6>
@@ -55,7 +55,7 @@
               <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.and_predicate.expression_semantics"></a><h6>
-<a name="id1185160"></a>
+<a name="id998955"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -102,7 +102,7 @@
             its embedded generator into a discarding device.
           </p>
 <a name="spirit.karma.reference.operator.and_predicate.attributes"></a><h6>
-<a name="id1185266"></a>
+<a name="id999078"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.attributes">Attributes</a>
           </h6>
 <p>
@@ -155,7 +155,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.and_predicate.complexity"></a><h6>
-<a name="id1185417"></a>
+<a name="id999251"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -164,7 +164,7 @@
               generator itself is O(1).
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.and_predicate.example"></a><h6>
-<a name="id1185440"></a>
+<a name="id999280"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Kleene Star Generator (*a)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Generator Operators">
 <link rel="prev" href="alternative.html" title="Alternative Generator (a | b)">
@@ -28,7 +28,7 @@
           Generator (<code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.operator.kleene.description"></a><h6>
-<a name="id1178131"></a>
+<a name="id993058"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             generator, the Kleene star generator always succeeds.
           </p>
 <a name="spirit.karma.reference.operator.kleene.header"></a><h6>
-<a name="id1178148"></a>
+<a name="id993083"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/operator/kleene.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.operator.kleene.model_of"></a><h6>
-<a name="id1178222"></a>
+<a name="id993181"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.model_of">Model
             of</a>
           </h6>
@@ -55,7 +55,7 @@
               <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.kleene.expression_semantics"></a><h6>
-<a name="id1178257"></a>
+<a name="id993222"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -109,7 +109,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.kleene.attributes"></a><h6>
-<a name="id1178373"></a>
+<a name="id993359"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.attributes">Attributes</a>
           </h6>
 <p>
@@ -212,7 +212,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.kleene.complexity"></a><h6>
-<a name="id1178716"></a>
+<a name="id993781"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -222,7 +222,7 @@
               N is the number of elements in the container passed as its attribute.
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.kleene.example"></a><h6>
-<a name="id1178737"></a>
+<a name="id993812"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/list.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/list.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/list.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>List Generator (a % b)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Generator Operators">
 <link rel="prev" href="plus.html" title="Plus Generator (+a)">
@@ -29,7 +29,7 @@
           <span class="identifier">b</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.operator.list.description"></a><h6>
-<a name="id1182173"></a>
+<a name="id995962"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.description">Description</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             at least once.
           </p>
 <a name="spirit.karma.reference.operator.list.header"></a><h6>
-<a name="id1182190"></a>
+<a name="id995988"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/operator/list.hpp&gt;
@@ -49,14 +49,14 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.operator.list.model_of"></a><h6>
-<a name="id1182264"></a>
+<a name="id996087"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               <a class="link" href="../generator_concepts/binarygenerator.html" title="BinaryGenerator"><code class="computeroutput"><span class="identifier">BinaryGenerator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.list.expression_semantics"></a><h6>
-<a name="id1182299"></a>
+<a name="id996128"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -123,7 +123,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.list.attributes"></a><h6>
-<a name="id1182514"></a>
+<a name="id996391"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.attributes">Attributes</a>
           </h6>
 <p>
@@ -213,7 +213,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.list.complexity"></a><h6>
-<a name="id1182861"></a>
+<a name="id996809"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -223,7 +223,7 @@
               number of elements in the container passed as its attribute.
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.list.example"></a><h6>
-<a name="id1182881"></a>
+<a name="id996841"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Not-Predicate Generator (!a)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Generator Operators">
 <link rel="prev" href="and_predicate.html" title="And-Predicate Generator (&amp;a)">
@@ -28,7 +28,7 @@
           Generator (<code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.operator.not_predicate.description"></a><h6>
-<a name="id1186148"></a>
+<a name="id1000150"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             fails.
           </p>
 <a name="spirit.karma.reference.operator.not_predicate.header"></a><h6>
-<a name="id1186167"></a>
+<a name="id1000176"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/operator/not_predicate.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.operator.not_predicate.model_of"></a><h6>
-<a name="id1186242"></a>
+<a name="id1000275"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.model_of">Model
             of</a>
           </h6>
@@ -55,7 +55,7 @@
               <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.not_predicate.expression_semantics"></a><h6>
-<a name="id1186274"></a>
+<a name="id1000316"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -102,7 +102,7 @@
             its embedded generator into a discarding device.
           </p>
 <a name="spirit.karma.reference.operator.not_predicate.attributes"></a><h6>
-<a name="id1186380"></a>
+<a name="id1000439"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.attributes">Attributes</a>
           </h6>
 <p>
@@ -155,7 +155,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.not_predicate.complexity"></a><h6>
-<a name="id1186531"></a>
+<a name="id1000611"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -164,7 +164,7 @@
               generator itself is O(1).
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.not_predicate.example"></a><h6>
-<a name="id1186554"></a>
+<a name="id1000640"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Optional Generator (-a)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Generator Operators">
 <link rel="prev" href="list.html" title="List Generator (a % b)">
@@ -28,7 +28,7 @@
           Generator (<code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.operator.optional.description"></a><h6>
-<a name="id1183373"></a>
+<a name="id997449"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             It succeeds always.
           </p>
 <a name="spirit.karma.reference.operator.optional.header"></a><h6>
-<a name="id1183390"></a>
+<a name="id997473"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/operator/optional.hpp&gt;
@@ -46,7 +46,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.operator.optional.model_of"></a><h6>
-<a name="id1183464"></a>
+<a name="id997572"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.model_of">Model
             of</a>
           </h6>
@@ -54,7 +54,7 @@
               <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.optional.expression_semantics"></a><h6>
-<a name="id1183499"></a>
+<a name="id997614"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -96,7 +96,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.operator.optional.attributes"></a><h6>
-<a name="id1183601"></a>
+<a name="id997732"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.attributes">Attributes</a>
           </h6>
 <p>
@@ -183,7 +183,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.optional.complexity"></a><h6>
-<a name="id1183914"></a>
+<a name="id998113"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -192,7 +192,7 @@
               generator itself is O(1).
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.optional.example"></a><h6>
-<a name="id1183935"></a>
+<a name="id998141"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Plus Generator (+a)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Generator Operators">
 <link rel="prev" href="kleene.html" title="Kleene Star Generator (*a)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.operator.plus.description"></a><h6>
-<a name="id1179246"></a>
+<a name="id994443"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             executed at least once.
           </p>
 <a name="spirit.karma.reference.operator.plus.header"></a><h6>
-<a name="id1179262"></a>
+<a name="id994468"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/operator/plus.hpp&gt;
@@ -47,14 +47,14 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.operator.plus.model_of"></a><h6>
-<a name="id1179337"></a>
+<a name="id994567"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.plus.expression_semantics"></a><h6>
-<a name="id1179372"></a>
+<a name="id994609"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -111,7 +111,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.plus.attributes"></a><h6>
-<a name="id1179499"></a>
+<a name="id994762"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.attributes">Attributes</a>
           </h6>
 <p>
@@ -214,7 +214,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.plus.complexity"></a><h6>
-<a name="id1179842"></a>
+<a name="id995184"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -224,7 +224,7 @@
               number of elements in the container passed as its attribute.
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.plus.example"></a><h6>
-<a name="id1179862"></a>
+<a name="id995214"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Sequence Generator (a &lt;&lt; b)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Generator Operators">
 <link rel="prev" href="../operator.html" title="Generator Operators">
@@ -29,7 +29,7 @@
           <span class="identifier">b</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.operator.sequence.description"></a><h6>
-<a name="id1173821"></a>
+<a name="id989340"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.description">Description</a>
           </h6>
 <p>
@@ -38,7 +38,7 @@
             to right as long as they succeed.
           </p>
 <a name="spirit.karma.reference.operator.sequence.header"></a><h6>
-<a name="id1173838"></a>
+<a name="id989365"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/operator/sequence.hpp&gt;
@@ -48,7 +48,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.operator.sequence.model_of"></a><h6>
-<a name="id1173912"></a>
+<a name="id989463"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.model_of">Model
             of</a>
           </h6>
@@ -56,7 +56,7 @@
               <a class="link" href="../generator_concepts/narygenerator.html" title="NaryGenerator"><code class="computeroutput"><span class="identifier">NaryGenerator</span></code></a>
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.sequence.expression_semantics"></a><h6>
-<a name="id1173945"></a>
+<a name="id989505"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -128,7 +128,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.sequence.attributes"></a><h6>
-<a name="id1174130"></a>
+<a name="id989726"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.attributes">Attributes</a>
           </h6>
 <p>
@@ -206,7 +206,7 @@
             the attribute supplied.
           </p>
 <a name="spirit.karma.reference.operator.sequence.complexity"></a><h6>
-<a name="id1176218"></a>
+<a name="id990713"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -215,7 +215,7 @@
               itself is O(N), where N is the number of elements in the sequence.
             </p></blockquote></div>
 <a name="spirit.karma.reference.operator.sequence.example"></a><h6>
-<a name="id1176239"></a>
+<a name="id990741"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/stream.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/stream.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/stream.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Stream Generators</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="operator/not_predicate.html" title="Not-Predicate Generator (!a)">
@@ -35,7 +35,7 @@
           for output generation.
         </p>
 <a name="spirit.karma.reference.stream.header"></a><h6>
-<a name="id1188694"></a>
+<a name="id1001550"></a>
           <a class="link" href="stream.html#spirit.karma.reference.stream.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/stream.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Stream Generators (stream, wstream, etc.)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../stream.html" title="Stream Generators">
 <link rel="prev" href="../stream.html" title="Stream Generators">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">stream</span></code>, <code class="computeroutput"><span class="identifier">wstream</span></code>, etc.)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.stream.stream.description"></a><h6>
-<a name="id1188794"></a>
+<a name="id1001684"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.description">Description</a>
           </h6>
 <p>
@@ -44,7 +44,7 @@
 <pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">&lt;&lt;</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&amp;,</span> <span class="identifier">A</span> <span class="keyword">const</span><span class="special">&amp;);</span>
 </pre>
 <a name="spirit.karma.reference.stream.stream.header"></a><h6>
-<a name="id1188903"></a>
+<a name="id1001831"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/stream.hpp&gt;
@@ -54,7 +54,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.stream.stream.namespace"></a><h6>
-<a name="id1188977"></a>
+<a name="id1001930"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -80,14 +80,14 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.stream.stream.synopsis"></a><h6>
-<a name="id1189093"></a>
+<a name="id1002064"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Char</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">stream_generator</span><span class="special">;</span>
 </pre>
 <a name="spirit.karma.reference.stream.stream.template_parameters"></a><h6>
-<a name="id1189147"></a>
+<a name="id1002132"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.template_parameters">Template
             parameters</a>
           </h6>
@@ -135,7 +135,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.stream.stream.model_of"></a><h6>
-<a name="id1189245"></a>
+<a name="id1002238"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -155,7 +155,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.stream.stream.expression_semantics"></a><h6>
-<a name="id1189334"></a>
+<a name="id1002346"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -325,7 +325,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.stream.stream.additional_requirements"></a><h6>
-<a name="id1189838"></a>
+<a name="id1002977"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -366,7 +366,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.stream.stream.attributes"></a><h6>
-<a name="id1190066"></a>
+<a name="id1003284"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -491,14 +491,14 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.stream.stream.complexity"></a><h6>
-<a name="id1190632"></a>
+<a name="id1003769"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of characters emitted by the stream generator
             </p></blockquote></div>
 <a name="spirit.karma.reference.stream.stream.example"></a><h6>
-<a name="id1190653"></a>
+<a name="id1003796"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/string.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/string.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/string.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>String Generators</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="stream/stream.html" title="Stream Generators (stream, wstream, etc.)">
@@ -39,7 +39,7 @@
           generator.
         </p>
 <a name="spirit.karma.reference.string.module_header"></a><h6>
-<a name="id1191471"></a>
+<a name="id1004799"></a>
           <a class="link" href="string.html#spirit.karma.reference.string.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/string.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/string/string.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/string/string.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/string/string.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>String Generators (string, lit)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../string.html" title="String Generators">
 <link rel="prev" href="../string.html" title="String Generators">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">string</span></code>, <code class="computeroutput"><span class="identifier">lit</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.string.string.description"></a><h6>
-<a name="id1191571"></a>
+<a name="id1004933"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.description">Description</a>
           </h6>
 <p>
@@ -59,7 +59,7 @@
 <span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span> <span class="comment">// s is a std::string
 </span></pre>
 <a name="spirit.karma.reference.string.string.header"></a><h6>
-<a name="id1191801"></a>
+<a name="id1005237"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/string/lit.hpp&gt;
@@ -69,7 +69,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.string.string.namespace"></a><h6>
-<a name="id1191876"></a>
+<a name="id1005335"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -99,7 +99,7 @@
             Encoding Namespace</a> used by the corresponding string generator.
           </p>
 <a name="spirit.karma.reference.string.string.model_of"></a><h6>
-<a name="id1191997"></a>
+<a name="id1005478"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -127,7 +127,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.string.string.expression_semantics"></a><h6>
-<a name="id1192117"></a>
+<a name="id1005616"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -242,7 +242,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.string.string.attributes"></a><h6>
-<a name="id1192477"></a>
+<a name="id1006057"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -331,14 +331,14 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.string.string.complexity"></a><h6>
-<a name="id1194027"></a>
+<a name="id1006424"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of characters emitted by the string generator
             </p></blockquote></div>
 <a name="spirit.karma.reference.string.string.example"></a><h6>
-<a name="id1194047"></a>
+<a name="id1006452"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/string/symbols.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/string/symbols.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/string/symbols.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Symbols Generator (symbols)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../string.html" title="String Generators">
 <link rel="prev" href="string.html" title="String Generators (string, lit)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">symbols</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.string.symbols.description"></a><h6>
-<a name="id1194711"></a>
+<a name="id1007274"></a>
             <a class="link" href="symbols.html#spirit.karma.reference.string.symbols.description">Description</a>
           </h6>
 <p>
@@ -47,7 +47,7 @@
             added, thus, dynamically altering its behavior.
           </p>
 <a name="spirit.karma.reference.string.symbols.header"></a><h6>
-<a name="id1194745"></a>
+<a name="id1007328"></a>
             <a class="link" href="symbols.html#spirit.karma.reference.string.symbols.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/string/symbols.hpp&gt;
@@ -57,7 +57,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.string.symbols.namespace"></a><h6>
-<a name="id1194820"></a>
+<a name="id1007426"></a>
             <a class="link" href="symbols.html#spirit.karma.reference.string.symbols.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -74,7 +74,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.string.symbols.synopsis"></a><h6>
-<a name="id1194900"></a>
+<a name="id1007520"></a>
             <a class="link" href="symbols.html#spirit.karma.reference.string.symbols.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Lookup</span>
@@ -82,7 +82,7 @@
 <span class="keyword">struct</span> <span class="identifier">symbols</span><span class="special">;</span>
 </pre>
 <a name="spirit.karma.reference.string.symbols.template_parameters"></a><h6>
-<a name="id1195008"></a>
+<a name="id1007652"></a>
             <a class="link" href="symbols.html#spirit.karma.reference.string.symbols.template_parameters">Template
             parameters</a>
           </h6>
@@ -205,7 +205,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.string.symbols.model_of"></a><h6>
-<a name="id1195325"></a>
+<a name="id1008011"></a>
             <a class="link" href="symbols.html#spirit.karma.reference.string.symbols.model_of">Model
             of</a>
           </h6>
@@ -262,7 +262,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.string.symbols.expression_semantics"></a><h6>
-<a name="id1195645"></a>
+<a name="id1008393"></a>
             <a class="link" href="symbols.html#spirit.karma.reference.string.symbols.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -517,7 +517,7 @@
             not emitting anything.
           </p>
 <a name="spirit.karma.reference.string.symbols.attributes"></a><h6>
-<a name="id1199555"></a>
+<a name="id1009806"></a>
             <a class="link" href="symbols.html#spirit.karma.reference.string.symbols.attributes">Attributes</a>
           </h6>
 <p>
@@ -577,7 +577,7 @@
 </span><span class="identifier">BOOST_ASSERT</span><span class="special">(</span><span class="identifier">test</span><span class="special">(</span><span class="string">"J"</span><span class="special">,</span> <span class="identifier">sym</span><span class="special">,</span> <span class="identifier">make_vector</span><span class="special">(</span><span class="char">'j'</span><span class="special">,</span> <span class="char">'J'</span><span class="special">)));</span>
 </pre>
 <a name="spirit.karma.reference.string.symbols.complexity"></a><h6>
-<a name="id1200002"></a>
+<a name="id1010390"></a>
             <a class="link" href="symbols.html#spirit.karma.reference.string.symbols.complexity">Complexity</a>
           </h6>
 <p>
@@ -590,7 +590,7 @@
             Where n is the number of stored symbols.
           </p>
 <a name="spirit.karma.reference.string.symbols.example"></a><h6>
-<a name="id1200066"></a>
+<a name="id1010473"></a>
             <a class="link" href="symbols.html#spirit.karma.reference.string.symbols.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/s05.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/s05.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/s05.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Karma Index</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../karma.html" title="Karma - Writing Generators">
 <link rel="prev" href="performance_measurements/numeric_performance/format_performance.html" title="Comparing the performance of a sequence of several generators">
@@ -24,7 +24,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="id1206661"></a>Karma Index</h3></div></div></div>
+<a name="id1015412"></a>Karma Index</h3></div></div></div>
 <p><a class="link" href="s05.html#idx_id_22">A</a> <a class="link" href="s05.html#idx_id_23">B</a> <a class="link" href="s05.html#idx_id_24">C</a> <a class="link" href="s05.html#idx_id_25">D</a> <a class="link" href="s05.html#idx_id_26">E</a> <a class="link" href="s05.html#idx_id_27">F</a> <a class="link" href="s05.html#idx_id_28">G</a> <a class="link" href="s05.html#idx_id_29">H</a> <a class="link" href="s05.html#idx_id_30">I</a> <a class="link" href="s05.html#idx_id_31">K</a> <a class="link" href="s05.html#idx_id_32">L</a> <a class="link" href="s05.html#idx_id_33">M</a> <a class="link" href="s05.html#idx_id_34">N</a> <a class="link" href="s05.html#idx_id_35">O</a> <a class="link" href="s05.html#idx_id_36">P</a> <a class="link" href="s05.html#idx_id_37">Q</a> <a class="link" href="s05.html#idx_id_38">R</a> <a class="link" href="s05.html#idx_id_39">S</a> <a class="link" href="s05.html#idx_id_40">T</a> <a class="link" href="s05.html#idx_id_41">U</a> <a class="link" href="s05.html#idx_id_42">V</a> <a class="l
ink" href="s05.html#idx_id_43">W</a> <a class="link" href="s05.html#idx_id_44">X</a> </p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_adapted_complex.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_adapted_complex.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_adapted_complex.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Complex - Fully Integrated</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="karma_easier_complex.html" title="Complex - Made easier">
@@ -38,7 +38,7 @@
           macros.
         </p>
 <a name="spirit.karma.tutorials.karma_adapted_complex.adapting_a_class_as_a_fusion_sequence"></a><h6>
-<a name="id1045644"></a>
+<a name="id878884"></a>
           <a class="link" href="karma_adapted_complex.html#spirit.karma.tutorials.karma_adapted_complex.adapting_a_class_as_a_fusion_sequence">Adapting
           a Class As a Fusion Sequence</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Complex - Made easier</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="karma_complex.html" title="Complex - A first more complex generator">
@@ -63,7 +63,7 @@
           Let's cover some basic library features first.
         </p>
 <a name="spirit.karma.tutorials.karma_easier_complex.making_numeric_generators_fail"></a><h6>
-<a name="id1044507"></a>
+<a name="id877387"></a>
           <a class="link" href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.making_numeric_generators_fail">Making
           Numeric Generators Fail</a>
         </h6>
@@ -113,7 +113,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.karma.tutorials.karma_easier_complex.predicates___the_conditionals_for_output_generators"></a><h6>
-<a name="id1044796"></a>
+<a name="id877763"></a>
           <a class="link" href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.predicates___the_conditionals_for_output_generators">Predicates
           - The Conditionals for Output Generators</a>
         </h6>
@@ -164,7 +164,7 @@
           emitted by the generators to which they are applied.
         </p>
 <a name="spirit.karma.tutorials.karma_easier_complex.ignoring_supplied_attributes"></a><h6>
-<a name="id1045046"></a>
+<a name="id878086"></a>
           <a class="link" href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.ignoring_supplied_attributes">Ignoring
           Supplied Attributes</a>
         </h6>
@@ -191,7 +191,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.karma.tutorials.karma_easier_complex.putting_everything_together"></a><h6>
-<a name="id1045124"></a>
+<a name="id878195"></a>
           <a class="link" href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.putting_everything_together">Putting
           everything together</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/tutorials/num_list.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/tutorials/num_list.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/tutorials/num_list.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Number List - Printing Numbers From a std::vector</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="karma_adapted_complex.html" title="Complex - Fully Integrated">
@@ -28,7 +28,7 @@
         Numbers From a std::vector</a>
 </h4></div></div></div>
 <a name="spirit.karma.tutorials.num_list.using_the_list_operator"></a><h6>
-<a name="id1048205"></a>
+<a name="id879900"></a>
           <a class="link" href="num_list.html#spirit.karma.tutorials.num_list.using_the_list_operator">Using
           the List Operator</a>
         </h6>
@@ -102,7 +102,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.karma.tutorials.num_list.generate_output_from_arbitrary_data"></a><h6>
-<a name="id1048719"></a>
+<a name="id880551"></a>
           <a class="link" href="num_list.html#spirit.karma.tutorials.num_list.generate_output_from_arbitrary_data">Generate
           Output from Arbitrary Data</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Quick Start</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="../tutorials.html" title="Tutorials">
@@ -27,7 +27,7 @@
 <a name="spirit.karma.tutorials.quick_start"></a><a class="link" href="quick_start.html" title="Quick Start">Quick Start</a>
 </h4></div></div></div>
 <a name="spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_"></a><h6>
-<a name="id1038409"></a>
+<a name="id872367"></a>
           <a class="link" href="quick_start.html#spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_">Spirit.Karma
           - what's that?</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Generator Semantic Actions</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="warming_up.html" title="Warming up">
@@ -106,7 +106,7 @@
 <span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Attrib</span><span class="special">&amp;,</span> <span class="identifier">Context</span><span class="special">&amp;,</span> <span class="keyword">bool</span><span class="special">&amp;);</span>
 </pre>
 <a name="spirit.karma.tutorials.semantic_actions.examples_of_semantic_actions"></a><h6>
-<a name="id1040259"></a>
+<a name="id874433"></a>
           <a class="link" href="semantic_actions.html#spirit.karma.tutorials.semantic_actions.examples_of_semantic_actions">Examples
           of Semantic Actions</a>
         </h6>
@@ -258,7 +258,7 @@
           The examples above can be found here: actions.cpp
         </p>
 <a name="spirit.karma.tutorials.semantic_actions.phoenix"></a><h6>
-<a name="id1041199"></a>
+<a name="id875570"></a>
           <a class="link" href="semantic_actions.html#spirit.karma.tutorials.semantic_actions.phoenix">Phoenix</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Warming up</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="quick_start.html" title="Quick Start">
@@ -31,7 +31,7 @@
           We will start from trivial examples, ramping up as we go.
         </p>
 <a name="spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number"></a><h6>
-<a name="id1038577"></a>
+<a name="id872580"></a>
           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number">Trivial
           Example #1 Generating a number</a>
         </h6>
@@ -51,7 +51,7 @@
           to a floating point generator or parser: <code class="computeroutput"><span class="identifier">double_</span></code>.
         </p>
 <a name="spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers"></a><h6>
-<a name="id1038620"></a>
+<a name="id872647"></a>
           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers">Trivial
           Example #2 Generating two numbers</a>
         </h6>
@@ -89,7 +89,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers"></a><h6>
-<a name="id1038705"></a>
+<a name="id872772"></a>
           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers">Trivial
           Example #3 Generating one or more numbers</a>
         </h6>
@@ -114,7 +114,7 @@
           numbers, if needed.
         </p>
 <a name="spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers"></a><h6>
-<a name="id1038752"></a>
+<a name="id872841"></a>
           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers">Trivial
           Example #4 Generating a comma-delimited list of numbers</a>
         </h6>
@@ -137,7 +137,7 @@
           in the generated output zero or more times.
         </p>
 <a name="spirit.karma.tutorials.warming_up.let_s_generate_"></a><h6>
-<a name="id1038886"></a>
+<a name="id873015"></a>
           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.let_s_generate_">Let's
           Generate!</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>About Tokens and Token Values</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../lexer_primitives.html" title="Lexer Primitives">
 <link rel="prev" href="../lexer_primitives.html" title="Lexer Primitives">
@@ -50,7 +50,7 @@
             library.
           </p>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token"></a><h6>
-<a name="id1221408"></a>
+<a name="id1028052"></a>
             <a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token">The
             Anatomy of a Token</a>
           </h6>
@@ -185,7 +185,7 @@
             time.
           </p>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition"></a><h6>
-<a name="id1221956"></a>
+<a name="id1028757"></a>
             <a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition">The
             Physiognomy of a Token Definition</a>
           </h6>
@@ -257,7 +257,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__code__phrase_role__identifier__lex__phrase__phrase_role__special______phrase__phrase_role__identifier__lexertl__phrase__phrase_role__special______phrase__phrase_role__identifier__token__phrase__phrase_role__special___lt__gt___phrase___code_"></a><h6>
-<a name="id1222216"></a>
+<a name="id1029095"></a>
             <a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__code__phrase_role__identifier__lex__phrase__phrase_role__special______phrase__phrase_role__identifier__lexertl__phrase__phrase_role__special______phrase__phrase_role__identifier__token__phrase__phrase_role__special___lt__gt___phrase___code_">Examples
             of using <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span><span class="special">&lt;&gt;</span></code></a>
           </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Lexer Semantic Actions</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="lexer_tokenizing.html" title="Tokenizing Input Data">
@@ -120,7 +120,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action"></a><h6>
-<a name="id1226046"></a>
+<a name="id1033386"></a>
           <a class="link" href="lexer_semantic_actions.html#spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action">The
           context of a lexer semantic action</a>
         </h6>
@@ -254,7 +254,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="spirit.lex.abstracts.lexer_semantic_actions.lexer_semantic_actions_using_phoenix"></a><h6>
-<a name="id1226594"></a>
+<a name="id1034070"></a>
           <a class="link" href="lexer_semantic_actions.html#spirit.lex.abstracts.lexer_semantic_actions.lexer_semantic_actions_using_phoenix">Lexer
           Semantic Actions Using Phoenix</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>The Static Lexer Model</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="lexer_semantic_actions.html" title="Lexer Semantic Actions">
@@ -163,7 +163,7 @@
 <p>
         </p>
 <a name="spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer"></a><h6>
-<a name="id1231196"></a>
+<a name="id1036295"></a>
           <a class="link" href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer">Generating
           the Static Analyzer</a>
         </h6>
@@ -222,7 +222,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer"></a><h6>
-<a name="id1231549"></a>
+<a name="id1036737"></a>
           <a class="link" href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer">Modifying
           the Dynamic Analyzer</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Tokenizing Input Data</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="lexer_primitives/lexer_token_values.html" title="About Tokens and Token Values">
@@ -28,7 +28,7 @@
         Data</a>
 </h4></div></div></div>
 <a name="spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function"></a><h6>
-<a name="id1222766"></a>
+<a name="id1029823"></a>
           <a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function">The
           tokenize function</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/lexer_introduction.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/lexer_introduction.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/lexer_introduction.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Introduction to Spirit.Lex</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../lex.html" title="Lex - Writing Lexical Analyzers">
 <link rel="prev" href="../lex.html" title="Lex - Writing Lexical Analyzers">
@@ -56,7 +56,7 @@
           </li>
 </ul></div>
 <a name="spirit.lex.lexer_introduction.why_use_a_separate_lexer_"></a><h5>
-<a name="id1208327"></a>
+<a name="id1017493"></a>
         <a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.why_use_a_separate_lexer_">Why
         Use a Separate Lexer?</a>
       </h5>
@@ -154,7 +154,7 @@
         to use the provided functionality to build more complex grammar recognizers.
       </p>
 <a name="spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id1208551"></a>
+<a name="id1017786"></a>
         <a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_">Advantages
         of using <span class="emphasis"><em>Spirit.Lex</em></span></a>
       </h5>
@@ -201,7 +201,7 @@
         This dynamic flexibility allows you to speed up the development of your application.
       </p>
 <a name="spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id1208668"></a>
+<a name="id1017934"></a>
         <a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_">The
         Library Structure of <span class="emphasis"><em>Spirit.Lex</em></span></a>
       </h5>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/quick_reference/lexer.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/quick_reference/lexer.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/quick_reference/lexer.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Supported Regular Expressions</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../quick_reference.html" title="Quick Reference">
 <link rel="prev" href="phoenix.html" title="Phoenix">
@@ -638,7 +638,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.lex.quick_reference.lexer.regular_expression_precedence"></a><h6>
-<a name="id1236850"></a>
+<a name="id1042331"></a>
           <a class="link" href="lexer.html#spirit.lex.quick_reference.lexer.regular_expression_precedence">Regular
           Expression Precedence</a>
         </h6>
@@ -657,7 +657,7 @@
             </li>
 </ul></div>
 <a name="spirit.lex.quick_reference.lexer.macros"></a><h6>
-<a name="id1236967"></a>
+<a name="id1042477"></a>
           <a class="link" href="lexer.html#spirit.lex.quick_reference.lexer.macros">Macros</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/reference/lex_basics.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/reference/lex_basics.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/reference/lex_basics.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Basics</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="lexer_concepts/narylexer.html" title="NaryLexer">
@@ -27,7 +27,7 @@
 <a name="spirit.lex.reference.lex_basics"></a><a class="link" href="lex_basics.html" title="Basics">Basics</a>
 </h4></div></div></div>
 <a name="spirit.lex.reference.lex_basics.examples"></a><h6>
-<a name="id1241148"></a>
+<a name="id1045167"></a>
           <a class="link" href="lex_basics.html#spirit.lex.reference.lex_basics.examples">Examples</a>
         </h6>
 <p>
@@ -56,7 +56,7 @@
           This one tests token definitions.
         </p>
 <a name="spirit.lex.reference.lex_basics.models"></a><h6>
-<a name="id1241353"></a>
+<a name="id1045424"></a>
           <a class="link" href="lex_basics.html#spirit.lex.reference.lex_basics.models">Models</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_api.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_api.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_api.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Lexer API</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="lex_basics.html" title="Basics">
@@ -27,7 +27,7 @@
 <a name="spirit.lex.reference.lexer_api"></a><a class="link" href="lexer_api.html" title="Lexer API">Lexer API</a>
 </h4></div></div></div>
 <a name="spirit.lex.reference.lexer_api.description"></a><h6>
-<a name="id1241456"></a>
+<a name="id1045552"></a>
           <a class="link" href="lexer_api.html#spirit.lex.reference.lexer_api.description">Description</a>
         </h6>
 <p>
@@ -41,7 +41,7 @@
           the parsed values on a successful parse.
         </p>
 <a name="spirit.lex.reference.lexer_api.header"></a><h6>
-<a name="id1241495"></a>
+<a name="id1045612"></a>
           <a class="link" href="lexer_api.html#spirit.lex.reference.lexer_api.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/lex/tokenize_and_parse.hpp&gt;
@@ -64,7 +64,7 @@
           Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
         </p>
 <a name="spirit.lex.reference.lexer_api.namespace"></a><h6>
-<a name="id1241634"></a>
+<a name="id1045796"></a>
           <a class="link" href="lexer_api.html#spirit.lex.reference.lexer_api.namespace">Namespace</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -103,7 +103,7 @@
 </tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_api.synopsis"></a><h6>
-<a name="id1241887"></a>
+<a name="id1046094"></a>
           <a class="link" href="lexer_api.html#spirit.lex.reference.lexer_api.synopsis">Synopsis</a>
         </h6>
 <p>
@@ -264,7 +264,7 @@
           to the corresponding argument.
         </p>
 <a name="spirit.lex.reference.lexer_api.template_parameters"></a><h6>
-<a name="id1243971"></a>
+<a name="id1048316"></a>
           <a class="link" href="lexer_api.html#spirit.lex.reference.lexer_api.template_parameters">Template
           parameters</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Lexer</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../lexer_concepts.html" title="Lexer Concepts">
 <link rel="prev" href="../lexer_concepts.html" title="Lexer Concepts">
@@ -27,7 +27,7 @@
 <a name="spirit.lex.reference.lexer_concepts.lexer"></a><a class="link" href="lexer.html" title="Lexer">Lexer</a>
 </h5></div></div></div>
 <a name="spirit.lex.reference.lexer_concepts.lexer.description"></a><h6>
-<a name="id1237100"></a>
+<a name="id1042650"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.description">Description</a>
           </h6>
 <p>
@@ -65,7 +65,7 @@
 </dl>
 </div>
 <a name="spirit.lex.reference.lexer_concepts.lexer.valid_expressions"></a><h6>
-<a name="id1237264"></a>
+<a name="id1042858"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -147,7 +147,7 @@
 </tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.lexer.type_expressions"></a><h6>
-<a name="id1237509"></a>
+<a name="id1043146"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.type_expressions">Type
             Expressions</a>
           </h6>
@@ -186,7 +186,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.lexer.postcondition"></a><h6>
-<a name="id1237649"></a>
+<a name="id1043311"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.postcondition">Postcondition</a>
           </h6>
 <p>
@@ -210,7 +210,7 @@
                 inside <code class="computeroutput"><span class="identifier">l</span></code>.
               </li></ul></div>
 <a name="spirit.lex.reference.lexer_concepts.lexer.models"></a><h6>
-<a name="id1237763"></a>
+<a name="id1043463"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.models">Models</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>NaryLexer</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../lexer_concepts.html" title="Lexer Concepts">
 <link rel="prev" href="unarylexer.html" title="UnaryLexer">
@@ -27,7 +27,7 @@
 <a name="spirit.lex.reference.lexer_concepts.narylexer"></a><a class="link" href="narylexer.html" title="NaryLexer">NaryLexer</a>
 </h5></div></div></div>
 <a name="spirit.lex.reference.lexer_concepts.narylexer.description"></a><h6>
-<a name="id1240591"></a>
+<a name="id1044514"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             Design Pattern.
           </p>
 <a name="spirit.lex.reference.lexer_concepts.narylexer.refinement_of"></a><h6>
-<a name="id1240626"></a>
+<a name="id1044560"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.refinement_of">Refinement
             of</a>
           </h6>
@@ -58,7 +58,7 @@
 </dl>
 </div>
 <a name="spirit.lex.reference.lexer_concepts.narylexer.valid_expressions"></a><h6>
-<a name="id1240706"></a>
+<a name="id1044650"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -109,7 +109,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.narylexer.type_expressions"></a><h6>
-<a name="id1240837"></a>
+<a name="id1044795"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.type_expressions">Type
             Expressions</a>
           </h6>
@@ -162,7 +162,7 @@
 </tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.narylexer.invariants"></a><h6>
-<a name="id1241012"></a>
+<a name="id1044995"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.invariants">Invariants</a>
           </h6>
 <p>
@@ -174,7 +174,7 @@
                 <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_lexer</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">&gt;::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
               </li></ul></div>
 <a name="spirit.lex.reference.lexer_concepts.narylexer.models"></a><h6>
-<a name="id1241100"></a>
+<a name="id1045107"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.models">Models</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>PrimitiveLexer</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../lexer_concepts.html" title="Lexer Concepts">
 <link rel="prev" href="lexer.html" title="Lexer">
@@ -27,7 +27,7 @@
 <a name="spirit.lex.reference.lexer_concepts.primitivelexer"></a><a class="link" href="primitivelexer.html" title="PrimitiveLexer">PrimitiveLexer</a>
 </h5></div></div></div>
 <a name="spirit.lex.reference.lexer_concepts.primitivelexer.description"></a><h6>
-<a name="id1237802"></a>
+<a name="id1043511"></a>
             <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.description">Description</a>
           </h6>
 <p>
@@ -35,7 +35,7 @@
             that the client uses to build more complex lexer components.
           </p>
 <a name="spirit.lex.reference.lexer_concepts.primitivelexer.refinement_of"></a><h6>
-<a name="id1237825"></a>
+<a name="id1043540"></a>
             <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.refinement_of">Refinement
             of</a>
           </h6>
@@ -43,7 +43,7 @@
               <a class="link" href="lexer.html" title="Lexer"><code class="computeroutput"><span class="identifier">Lexer</span></code></a>
             </p></blockquote></div>
 <a name="spirit.lex.reference.lexer_concepts.primitivelexer.type_expressions"></a><h6>
-<a name="id1237855"></a>
+<a name="id1043582"></a>
             <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.type_expressions">Type
             Expressions</a>
           </h6>
@@ -82,7 +82,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.primitivelexer.models"></a><h6>
-<a name="id1239944"></a>
+<a name="id1043747"></a>
             <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.models">Models</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>UnaryLexer</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../lexer_concepts.html" title="Lexer Concepts">
 <link rel="prev" href="primitivelexer.html" title="PrimitiveLexer">
@@ -27,7 +27,7 @@
 <a name="spirit.lex.reference.lexer_concepts.unarylexer"></a><a class="link" href="unarylexer.html" title="UnaryLexer">UnaryLexer</a>
 </h5></div></div></div>
 <a name="spirit.lex.reference.lexer_concepts.unarylexer.description"></a><h6>
-<a name="id1240054"></a>
+<a name="id1043883"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             following the Delegate Design Pattern.
           </p>
 <a name="spirit.lex.reference.lexer_concepts.unarylexer.refinement_of"></a><h6>
-<a name="id1240079"></a>
+<a name="id1043912"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.refinement_of">Refinement
             of</a>
           </h6>
@@ -57,7 +57,7 @@
 </dl>
 </div>
 <a name="spirit.lex.reference.lexer_concepts.unarylexer.valid_expressions"></a><h6>
-<a name="id1240157"></a>
+<a name="id1044004"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -107,7 +107,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.unarylexer.type_expressions"></a><h6>
-<a name="id1240279"></a>
+<a name="id1044142"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.type_expressions">Type
             Expressions</a>
           </h6>
@@ -160,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.unarylexer.invariants"></a><h6>
-<a name="id1240454"></a>
+<a name="id1044343"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.invariants">Invariants</a>
           </h6>
 <p>
@@ -171,7 +171,7 @@
                 <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_lexer</span><span class="special">&lt;</span><span class="identifier">L</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">&gt;::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
               </li></ul></div>
 <a name="spirit.lex.reference.lexer_concepts.unarylexer.models"></a><h6>
-<a name="id1240542"></a>
+<a name="id1044453"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.models">Models</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Token definition Primitives</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="lexer_api.html" title="Lexer API">
@@ -35,7 +35,7 @@
           and string literals.
         </p>
 <a name="spirit.lex.reference.primitives.module_headers"></a><h6>
-<a name="id1244224"></a>
+<a name="id1048608"></a>
           <a class="link" href="primitives.html#spirit.lex.reference.primitives.module_headers">Module Headers</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/lex/primitives.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Tokens Matching Single Characters</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../primitives.html" title="Token definition Primitives">
 <link rel="prev" href="../primitives.html" title="Token definition Primitives">
@@ -28,7 +28,7 @@
           Matching Single Characters</a>
 </h5></div></div></div>
 <a name="spirit.lex.reference.primitives.char_tokendef.description"></a><h6>
-<a name="id1244310"></a>
+<a name="id1048722"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.description">Description</a>
           </h6>
 <p>
@@ -42,11 +42,11 @@
             forcing lower or upper case and dealing with character ranges.
           </p>
 <a name="spirit.lex.reference.primitives.char_tokendef.header"></a><h6>
-<a name="id1244355"></a>
+<a name="id1048783"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.header">Header</a>
           </h6>
 <a name="spirit.lex.reference.primitives.char_tokendef.module_headers"></a><h6>
-<a name="id1244370"></a>
+<a name="id1048803"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.module_headers">Module
             Headers</a>
           </h6>
@@ -57,7 +57,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.lex.reference.primitives.char_tokendef.namespace"></a><h6>
-<a name="id1244447"></a>
+<a name="id1048902"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -82,7 +82,7 @@
 </tbody>
 </table></div>
 <a name="spirit.lex.reference.primitives.char_tokendef.model_of"></a><h6>
-<a name="id1244550"></a>
+<a name="id1049022"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.model_of">Model
             of</a>
           </h6>
@@ -100,7 +100,7 @@
 </dl>
 </div>
 <a name="spirit.lex.reference.primitives.char_tokendef.expression_semantics"></a><h6>
-<a name="id1245708"></a>
+<a name="id1049103"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -165,7 +165,7 @@
 </tbody>
 </table></div>
 <a name="spirit.lex.reference.primitives.char_tokendef.example"></a><h6>
-<a name="id1245895"></a>
+<a name="id1049325"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.example">Example</a>
           </h6>
 </div>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Quickstart 1 - A word counter using Spirit.Lex</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Spirit.Lex Tutorials">
 <link rel="prev" href="lexer_tutorials.html" title="Spirit.Lex Tutorials Overview">
@@ -39,7 +39,7 @@
           (for the full example code see here: word_count_functor.cpp).
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.prerequisites"></a><h6>
-<a name="id1208948"></a>
+<a name="id1018294"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -70,7 +70,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.defining_tokens"></a><h6>
-<a name="id1209190"></a>
+<a name="id1018600"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.defining_tokens">Defining
           Tokens</a>
         </h6>
@@ -118,7 +118,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work"></a><h6>
-<a name="id1209524"></a>
+<a name="id1019029"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work">Doing
           the Useful Work</a>
         </h6>
@@ -176,7 +176,7 @@
           as well.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together"></a><h6>
-<a name="id1210988"></a>
+<a name="id1019659"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together">Pulling
           Everything Together</a>
         </h6>
@@ -223,7 +223,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_"></a><h6>
-<a name="id1211826"></a>
+<a name="id1020686"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_">Comparing
           <span class="emphasis"><em>Spirit.Lex</em></span> with Flex</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Quickstart 2 - A better word counter using Spirit.Lex</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Spirit.Lex Tutorials">
 <link rel="prev" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">
@@ -40,7 +40,7 @@
           options along the lines (for the full example code see here: word_count_lexer.cpp).
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.prerequisites"></a><h6>
-<a name="id1212599"></a>
+<a name="id1021617"></a>
           <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -101,7 +101,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_"></a><h6>
-<a name="id1214340"></a>
+<a name="id1022373"></a>
           <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_">Semantic
           Actions in <span class="emphasis"><em>Spirit.Lex</em></span></a>
         </h6>
@@ -156,7 +156,7 @@
           Semantic Actions</a>.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer"></a><h6>
-<a name="id1214970"></a>
+<a name="id1023147"></a>
           <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer">Associating
           Token Definitions with the Lexer</a>
         </h6>
@@ -193,7 +193,7 @@
           with the constant defined by <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lex</span><span class="special">::</span><span class="identifier">min_token_id</span></code>.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together"></a><h6>
-<a name="id1215264"></a>
+<a name="id1023529"></a>
           <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together">Pulling
           everything together</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Quickstart 3 - Counting Words Using a Parser</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Spirit.Lex Tutorials">
 <link rel="prev" href="lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">
@@ -65,7 +65,7 @@
           code see here: word_count.cpp).
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.prerequisites"></a><h6>
-<a name="id1216262"></a>
+<a name="id1024811"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -105,7 +105,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.defining_tokens"></a><h6>
-<a name="id1217908"></a>
+<a name="id1025261"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.defining_tokens">Defining
           Tokens</a>
         </h6>
@@ -154,7 +154,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers"></a><h6>
-<a name="id1218256"></a>
+<a name="id1025693"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers">Using
           Token Definition Instances as Parsers</a>
         </h6>
@@ -303,7 +303,7 @@
           <span class="identifier">size</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)</span></code>.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together"></a><h6>
-<a name="id1219138"></a>
+<a name="id1026779"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together">Pulling
           Everything Together</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Porting from Spirit 1.8.x</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../notes.html" title="Notes">
 <link rel="prev" href="../notes.html" title="Notes">
@@ -41,7 +41,7 @@
         <a href="http://boost-spirit.com" target="_top">Spirit</a>.
       </p>
 <a name="spirit.notes.porting_from_spirit_1_8_x.include_files"></a><h5>
-<a name="id1313692"></a>
+<a name="id1107244"></a>
         <a class="link" href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.include_files">Include
         Files</a>
       </h5>
@@ -223,7 +223,7 @@
 </tbody>
 </table></div>
 <a name="spirit.notes.porting_from_spirit_1_8_x.the_free_parse_functions"></a><h5>
-<a name="id1314343"></a>
+<a name="id1108012"></a>
         <a class="link" href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.the_free_parse_functions">The
         Free Parse Functions</a>
       </h5>
@@ -382,7 +382,7 @@
         Encoding Namespace</a> for more information.
       </p>
 <a name="spirit.notes.porting_from_spirit_1_8_x.naming_conventions"></a><h5>
-<a name="id1316553"></a>
+<a name="id1110685"></a>
         <a class="link" href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.naming_conventions">Naming
         Conventions</a>
       </h5>
@@ -402,7 +402,7 @@
         parser primitives, directives and operators.
       </p>
 <a name="spirit.notes.porting_from_spirit_1_8_x.parser_attributes"></a><h5>
-<a name="id1316625"></a>
+<a name="id1110785"></a>
         <a class="link" href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.parser_attributes">Parser
         Attributes</a>
       </h5>
@@ -420,7 +420,7 @@
         underlying matched input sequence.
       </p>
 <a name="spirit.notes.porting_from_spirit_1_8_x.grammars_and_rules"></a><h5>
-<a name="id1316694"></a>
+<a name="id1110879"></a>
         <a class="link" href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.grammars_and_rules">Grammars
         and Rules</a>
       </h5>

Modified: branches/release/libs/spirit/doc/html/spirit/preface.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/preface.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/preface.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Preface</title>
 <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../index.html" title="Spirit 2.4.2">
 <link rel="prev" href="../index.html" title="Spirit 2.4.2">
@@ -35,11 +35,11 @@
         <span class="bold"><strong>--Bjarne Stroustrup</strong></span>
       </p></blockquote></div>
 <a name="spirit.preface.history"></a><h4>
-<a name="id854792"></a>
+<a name="id673625"></a>
       <a class="link" href="preface.html#spirit.preface.history">History</a>
     </h4>
 <a name="spirit.preface._emphasis_80s__emphasis_"></a><h4>
-<a name="id854806"></a>
+<a name="id672559"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_80s__emphasis_"><span class="emphasis"><em>80s</em></span></a>
     </h4>
 <p>
@@ -53,7 +53,7 @@
       This process worked very well.
     </p>
 <a name="spirit.preface._emphasis_90s__emphasis_"></a><h4>
-<a name="id854824"></a>
+<a name="id672587"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_90s__emphasis_"><span class="emphasis"><em>90s</em></span></a>
     </h4>
 <p>
@@ -90,7 +90,7 @@
       here: pre-Spirit.
     </p>
 <a name="spirit.preface._emphasis_2001_to_2006__emphasis_"></a><h4>
-<a name="id854866"></a>
+<a name="id672662"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_2001_to_2006__emphasis_"><span class="emphasis"><em>2001
       to 2006</em></span></a>
     </h4>
@@ -120,7 +120,7 @@
       for design and implementation quality, robustness, and reusability.
     </p>
 <a name="spirit.preface._emphasis_2007__emphasis_"></a><h4>
-<a name="id854900"></a>
+<a name="id672713"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_2007__emphasis_"><span class="emphasis"><em>2007</em></span></a>
     </h4>
 <p>
@@ -157,12 +157,12 @@
       gives you the right ingredients to easily create a sledgehammer.
     </p>
 <a name="spirit.preface.new_ideas__spirit_v2"></a><h4>
-<a name="id854975"></a>
+<a name="id713363"></a>
       <a class="link" href="preface.html#spirit.preface.new_ideas__spirit_v2">New Ideas: Spirit V2</a>
     </h4>
 <p>
       Just before the development of Spirit V2 began, Hartmut came across the StringTemplate library that is
- a part of the ANTLR parser framework. <sup>[<a name="id854992" href="#ftn.id854992" class="footnote">1</a>]</sup> The concepts presented in that library lead Hartmut to the next
+ a part of the ANTLR parser framework. <sup>[<a name="id713381" href="#ftn.id713381" class="footnote">1</a>]</sup> The concepts presented in that library lead Hartmut to the next
       step in the evolution of Spirit. Parsing and generation are tightly connected
       to a formal notation, or a grammar. The grammar describes both input and output,
       and therefore, a parser library should have a grammar driven output. This duality
@@ -185,7 +185,7 @@
       same underlying component library as for the parser and generator libraries.
     </p>
 <a name="spirit.preface.how_to_use_this_manual"></a><h4>
-<a name="id855032"></a>
+<a name="id713431"></a>
       <a class="link" href="preface.html#spirit.preface.how_to_use_this_manual">How to use this manual</a>
     </h4>
 <p>
@@ -338,7 +338,7 @@
       Tools</a>.
     </p>
 <a name="spirit.preface.support"></a><h4>
-<a name="id855348"></a>
+<a name="id713744"></a>
       <a class="link" href="preface.html#spirit.preface.support">Support</a>
     </h4>
 <p>
@@ -353,7 +353,7 @@
     </p>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id854992" href="#id854992" class="para">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id713381" href="#id713381" class="para">1</a>] </sup>
         Quote from http:<span class="emphasis"><em>/www.stringtemplate.org</em></span>: It is a Java
         template engine (with ports for C# and Python) for generating source code,
         web pages, emails, or any other formatted text output.

Modified: branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Compound Attribute Rules</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../quick_reference.html" title="Quick Reference">
 <link rel="prev" href="qi_parsers/action.html" title="Parser Semantic Actions">
@@ -28,7 +28,7 @@
         Attribute Rules</a>
 </h4></div></div></div>
 <a name="spirit.qi.quick_reference.compound_attribute_rules.notation"></a><h6>
-<a name="id910388"></a>
+<a name="id758419"></a>
           <a class="link" href="compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Notation</a>
         </h6>
 <p>
@@ -72,7 +72,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.qi.quick_reference.compound_attribute_rules.compound_parser_attribute_types"></a><h6>
-<a name="id910870"></a>
+<a name="id759039"></a>
           <a class="link" href="compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.compound_parser_attribute_types">Compound
           Parser Attribute Types</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/action.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/action.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/action.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Semantic Actions with Parsers</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="parse_api/create_parser.html" title="API for Automatic Parser Creation">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.action"></a><a class="link" href="action.html" title="Semantic Actions with Parsers">Semantic Actions with Parsers</a>
 </h4></div></div></div>
 <a name="spirit.qi.reference.action.description"></a><h6>
-<a name="id936951"></a>
+<a name="id782233"></a>
           <a class="link" href="action.html#spirit.qi.reference.action.description">Description</a>
         </h6>
 <p>
@@ -38,7 +38,7 @@
           is an arbitrary parser expression.
         </p>
 <a name="spirit.qi.reference.action.header"></a><h6>
-<a name="id936985"></a>
+<a name="id782283"></a>
           <a class="link" href="action.html#spirit.qi.reference.action.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/action.hpp&gt;
@@ -48,7 +48,7 @@
           Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
         </p>
 <a name="spirit.qi.reference.action.model_of"></a><h6>
-<a name="id937060"></a>
+<a name="id782382"></a>
           <a class="link" href="action.html#spirit.qi.reference.action.model_of">Model of</a>
         </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -84,7 +84,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.action.expression_semantics"></a><h6>
-<a name="id937258"></a>
+<a name="id782624"></a>
           <a class="link" href="action.html#spirit.qi.reference.action.expression_semantics">Expression
           Semantics</a>
         </h6>
@@ -162,7 +162,7 @@
           and not generating any output.
         </p>
 <a name="spirit.qi.reference.action.attributes"></a><h6>
-<a name="id937708"></a>
+<a name="id783196"></a>
           <a class="link" href="action.html#spirit.qi.reference.action.attributes">Attributes</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -199,7 +199,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.action.complexity"></a><h6>
-<a name="id937833"></a>
+<a name="id783338"></a>
           <a class="link" href="action.html#spirit.qi.reference.action.complexity">Complexity</a>
         </h6>
 <p>
@@ -208,7 +208,7 @@
           or function object used as the semantic action.
         </p>
 <a name="spirit.qi.reference.action.example"></a><h6>
-<a name="id937849"></a>
+<a name="id783362"></a>
           <a class="link" href="action.html#spirit.qi.reference.action.example">Example</a>
         </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/auto.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/auto.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auto.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Auto Parser</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="action.html" title="Semantic Actions with Parsers">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.auto"></a><a class="link" href="auto.html" title="Auto Parser">Auto Parser</a>
 </h4></div></div></div>
 <a name="spirit.qi.reference.auto.description"></a><h6>
-<a name="id937897"></a>
+<a name="id783426"></a>
           <a class="link" href="auto.html#spirit.qi.reference.auto.description">Description</a>
         </h6>
 <p>
@@ -36,7 +36,7 @@
           on the supplied attribute type.
         </p>
 <a name="spirit.qi.reference.auto.header"></a><h6>
-<a name="id937921"></a>
+<a name="id783462"></a>
           <a class="link" href="auto.html#spirit.qi.reference.auto.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/auto.hpp&gt;
@@ -46,7 +46,7 @@
           Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
         </p>
 <a name="spirit.qi.reference.auto.namespace"></a><h6>
-<a name="id937996"></a>
+<a name="id783560"></a>
           <a class="link" href="auto.html#spirit.qi.reference.auto.namespace">Namespace</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -64,14 +64,14 @@
                 </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auto.model_of"></a><h6>
-<a name="id938074"></a>
+<a name="id783649"></a>
           <a class="link" href="auto.html#spirit.qi.reference.auto.model_of">Model of</a>
         </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
             <a class="link" href="parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
           </p></blockquote></div>
 <a name="spirit.qi.reference.auto.expression_semantics"></a><h6>
-<a name="id938514"></a>
+<a name="id783689"></a>
           <a class="link" href="auto.html#spirit.qi.reference.auto.expression_semantics">Expression
           Semantics</a>
         </h6>
@@ -111,7 +111,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auto.additional_requirements"></a><h6>
-<a name="id938604"></a>
+<a name="id783794"></a>
           <a class="link" href="auto.html#spirit.qi.reference.auto.additional_requirements">Additional
           Requirements</a>
         </h6>
@@ -275,7 +275,7 @@
           can be used also to redefined any of the predefined mappings.
         </p>
 <a name="spirit.qi.reference.auto.attributes"></a><h6>
-<a name="id939199"></a>
+<a name="id784524"></a>
           <a class="link" href="auto.html#spirit.qi.reference.auto.attributes">Attributes</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -323,7 +323,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.auto.complexity"></a><h6>
-<a name="id939314"></a>
+<a name="id784658"></a>
           <a class="link" href="auto.html#spirit.qi.reference.auto.complexity">Complexity</a>
         </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -333,7 +333,7 @@
             complexity.
           </p></blockquote></div>
 <a name="spirit.qi.reference.auto.example"></a><h6>
-<a name="id939342"></a>
+<a name="id784697"></a>
           <a class="link" href="auto.html#spirit.qi.reference.auto.example">Example</a>
         </h6>
 <div class="note"><table border="0" summary="Note">
@@ -352,10 +352,12 @@
 <p>
           
 </p>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">support_utree</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assert</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">cstdlib</span><span class="special">&gt;</span>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Auxiliary Parsers</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="auto.html" title="Auto Parser">
@@ -46,7 +46,7 @@
           <code class="computeroutput"><span class="identifier">eps</span></code>, and <code class="computeroutput"><span class="identifier">lazy</span></code> parsers.
         </p>
 <a name="spirit.qi.reference.auxiliary.module_header"></a><h6>
-<a name="id940666"></a>
+<a name="id786426"></a>
           <a class="link" href="auxiliary.html#spirit.qi.reference.auxiliary.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/auxiliary.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Attribute Parser (attr)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auxiliary.html" title="Auxiliary Parsers">
 <link rel="prev" href="../auxiliary.html" title="Auxiliary Parsers">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">attr</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.auxiliary.attr.description"></a><h6>
-<a name="id941891"></a>
+<a name="id786550"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             its specified parameter as an attribute.
           </p>
 <a name="spirit.qi.reference.auxiliary.attr.header"></a><h6>
-<a name="id941908"></a>
+<a name="id786574"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/auxiliary/attr.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.auxiliary.attr.namespace"></a><h6>
-<a name="id941982"></a>
+<a name="id786672"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -65,7 +65,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.attr.model_of"></a><h6>
-<a name="id942060"></a>
+<a name="id786762"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -89,7 +89,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.auxiliary.attr.expression_semantics"></a><h6>
-<a name="id942155"></a>
+<a name="id786879"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -129,7 +129,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.attr.attributes"></a><h6>
-<a name="id942260"></a>
+<a name="id787004"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -163,7 +163,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.attr.complexity"></a><h6>
-<a name="id942351"></a>
+<a name="id787108"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -174,7 +174,7 @@
             done.
           </p>
 <a name="spirit.qi.reference.auxiliary.attr.example"></a><h6>
-<a name="id942375"></a>
+<a name="id787139"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr_cast.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr_cast.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr_cast.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Attribute Transformation Pseudo Parser (attr_cast)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auxiliary.html" title="Auxiliary Parsers">
 <link rel="prev" href="attr.html" title="Attribute Parser (attr)">
@@ -28,7 +28,7 @@
           Transformation Pseudo Parser (<code class="computeroutput"><span class="identifier">attr_cast</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.auxiliary.attr_cast.description"></a><h6>
-<a name="id942881"></a>
+<a name="id787759"></a>
             <a class="link" href="attr_cast.html#spirit.qi.reference.auxiliary.attr_cast.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             component using the customization point <a class="link" href="../../../advanced/customize/transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"><code class="computeroutput"><span class="identifier">transform_attribute</span></code></a>.
           </p>
 <a name="spirit.qi.reference.auxiliary.attr_cast.header"></a><h6>
-<a name="id942948"></a>
+<a name="id787854"></a>
             <a class="link" href="attr_cast.html#spirit.qi.reference.auxiliary.attr_cast.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/auxiliary/attr_cast.hpp&gt;
@@ -51,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.auxiliary.attr_cast.namespace"></a><h6>
-<a name="id943023"></a>
+<a name="id787953"></a>
             <a class="link" href="attr_cast.html#spirit.qi.reference.auxiliary.attr_cast.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -69,14 +69,14 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.attr_cast.synopsis"></a><h6>
-<a name="id943101"></a>
+<a name="id788044"></a>
             <a class="link" href="attr_cast.html#spirit.qi.reference.auxiliary.attr_cast.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span> <span class="identifier">Transformed</span><span class="special">&gt;</span>
 <span class="special">&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;</span> <span class="identifier">attr_cast</span><span class="special">(&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;);</span>
 </pre>
 <a name="spirit.qi.reference.auxiliary.attr_cast.template_parameters"></a><h6>
-<a name="id943173"></a>
+<a name="id788135"></a>
             <a class="link" href="attr_cast.html#spirit.qi.reference.auxiliary.attr_cast.template_parameters">Template
             parameters</a>
           </h6>
@@ -154,7 +154,7 @@
             not explicitly specified.
           </p>
 <a name="spirit.qi.reference.auxiliary.attr_cast.model_of"></a><h6>
-<a name="id943413"></a>
+<a name="id788416"></a>
             <a class="link" href="attr_cast.html#spirit.qi.reference.auxiliary.attr_cast.model_of">Model
             of</a>
           </h6>
@@ -171,7 +171,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.auxiliary.attr_cast.expression_semantics"></a><h6>
-<a name="id943472"></a>
+<a name="id788487"></a>
             <a class="link" href="attr_cast.html#spirit.qi.reference.auxiliary.attr_cast.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -253,7 +253,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.attr_cast.attributes"></a><h6>
-<a name="id943779"></a>
+<a name="id788876"></a>
             <a class="link" href="attr_cast.html#spirit.qi.reference.auxiliary.attr_cast.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -324,7 +324,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.attr_cast.complexity"></a><h6>
-<a name="id944718"></a>
+<a name="id789256"></a>
             <a class="link" href="attr_cast.html#spirit.qi.reference.auxiliary.attr_cast.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -332,7 +332,7 @@
               of the embedded parser <code class="computeroutput"><span class="identifier">p</span></code>.
             </p></blockquote></div>
 <a name="spirit.qi.reference.auxiliary.attr_cast.example"></a><h6>
-<a name="id944745"></a>
+<a name="id789294"></a>
             <a class="link" href="attr_cast.html#spirit.qi.reference.auxiliary.attr_cast.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>End of Input Parser (eoi)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auxiliary.html" title="Auxiliary Parsers">
 <link rel="prev" href="eol.html" title="End of Line Parser (eol)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">eoi</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.auxiliary.eoi.description"></a><h6>
-<a name="id945885"></a>
+<a name="id790697"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             is exhausted)
           </p>
 <a name="spirit.qi.reference.auxiliary.eoi.header"></a><h6>
-<a name="id945909"></a>
+<a name="id790732"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/auxiliary/eoi.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.auxiliary.eoi.namespace"></a><h6>
-<a name="id945984"></a>
+<a name="id790831"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -65,14 +65,14 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eoi.model_of"></a><h6>
-<a name="id946062"></a>
+<a name="id790921"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
             </p></blockquote></div>
 <a name="spirit.qi.reference.auxiliary.eoi.expression_semantics"></a><h6>
-<a name="id946092"></a>
+<a name="id790962"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -111,7 +111,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eoi.attributes"></a><h6>
-<a name="id946178"></a>
+<a name="id791062"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -145,14 +145,14 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eoi.complexity"></a><h6>
-<a name="id946259"></a>
+<a name="id791152"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(1)
             </p></blockquote></div>
 <a name="spirit.qi.reference.auxiliary.eoi.example"></a><h6>
-<a name="id946279"></a>
+<a name="id791178"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>End of Line Parser (eol)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auxiliary.html" title="Auxiliary Parsers">
 <link rel="prev" href="attr_cast.html" title="Attribute Transformation Pseudo Parser (attr_cast)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">eol</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.auxiliary.eol.description"></a><h6>
-<a name="id945360"></a>
+<a name="id790047"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             the end of line (CR/LF and combinations thereof).
           </p>
 <a name="spirit.qi.reference.auxiliary.eol.header"></a><h6>
-<a name="id945384"></a>
+<a name="id790082"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/auxiliary/eol.hpp&gt;
@@ -46,7 +46,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.auxiliary.eol.namespace"></a><h6>
-<a name="id945458"></a>
+<a name="id790181"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -64,14 +64,14 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eol.model_of"></a><h6>
-<a name="id945536"></a>
+<a name="id790271"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
             </p></blockquote></div>
 <a name="spirit.qi.reference.auxiliary.eol.expression_semantics"></a><h6>
-<a name="id945566"></a>
+<a name="id790313"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -110,7 +110,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eol.attributes"></a><h6>
-<a name="id945653"></a>
+<a name="id790414"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -144,14 +144,14 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eol.complexity"></a><h6>
-<a name="id945733"></a>
+<a name="id790504"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(1)
             </p></blockquote></div>
 <a name="spirit.qi.reference.auxiliary.eol.example"></a><h6>
-<a name="id945753"></a>
+<a name="id790531"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Epsilon Parser (eps)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auxiliary.html" title="Auxiliary Parsers">
 <link rel="prev" href="eoi.html" title="End of Input Parser (eoi)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">eps</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.auxiliary.eps.description"></a><h6>
-<a name="id946410"></a>
+<a name="id791345"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             a multi-purpose parser that returns a zero length match.
           </p>
 <a name="spirit.qi.reference.auxiliary.eps.simple_form"></a><h6>
-<a name="id946434"></a>
+<a name="id791378"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.simple_form">Simple
             Form</a>
           </h6>
@@ -54,7 +54,7 @@
 <pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span> <span class="special">|</span> <span class="identifier">c</span> <span class="special">|</span> <span class="identifier">eps</span><span class="special">[</span><span class="identifier">error</span><span class="special">()];</span> <span class="comment">// Call error if a, b, and c fail to match
 </span></pre>
 <a name="spirit.qi.reference.auxiliary.eps.semantic_predicate"></a><h6>
-<a name="id946535"></a>
+<a name="id791507"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.semantic_predicate">Semantic
             Predicate</a>
           </h6>
@@ -79,7 +79,7 @@
             touching rest.
           </p>
 <a name="spirit.qi.reference.auxiliary.eps.header"></a><h6>
-<a name="id946644"></a>
+<a name="id791662"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/auxiliary/eps.hpp&gt;
@@ -89,7 +89,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.auxiliary.eps.namespace"></a><h6>
-<a name="id946718"></a>
+<a name="id791761"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -107,7 +107,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eps.model_of"></a><h6>
-<a name="id946796"></a>
+<a name="id791851"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -124,7 +124,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.auxiliary.eps.expression_semantics"></a><h6>
-<a name="id949483"></a>
+<a name="id791938"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -179,7 +179,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eps.attributes"></a><h6>
-<a name="id949619"></a>
+<a name="id792098"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -213,7 +213,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eps.complexity"></a><h6>
-<a name="id949700"></a>
+<a name="id792189"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -222,7 +222,7 @@
               function <code class="computeroutput"><span class="identifier">f</span></code>.
             </p></blockquote></div>
 <a name="spirit.qi.reference.auxiliary.eps.example"></a><h6>
-<a name="id949753"></a>
+<a name="id792260"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Lazy Parser (lazy)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../auxiliary.html" title="Auxiliary Parsers">
 <link rel="prev" href="eps.html" title="Epsilon Parser (eps)">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.auxiliary.lazy"></a><a class="link" href="lazy.html" title="Lazy Parser (lazy)">Lazy Parser (<code class="computeroutput"><span class="identifier">lazy</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.auxiliary.lazy.description"></a><h6>
-<a name="id950288"></a>
+<a name="id792928"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             once it is created to continue the parse.
           </p>
 <a name="spirit.qi.reference.auxiliary.lazy.header"></a><h6>
-<a name="id950317"></a>
+<a name="id792970"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/auxiliary/lazy.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.auxiliary.lazy.namespace"></a><h6>
-<a name="id950391"></a>
+<a name="id793069"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -65,7 +65,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.lazy.model_of"></a><h6>
-<a name="id950469"></a>
+<a name="id793160"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -82,7 +82,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.auxiliary.lazy.expression_semantics"></a><h6>
-<a name="id950541"></a>
+<a name="id793251"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -145,7 +145,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.lazy.attributes"></a><h6>
-<a name="id950735"></a>
+<a name="id793501"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -193,7 +193,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.lazy.complexity"></a><h6>
-<a name="id950859"></a>
+<a name="id793642"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.complexity">Complexity</a>
           </h6>
 <p>
@@ -201,7 +201,7 @@
             parser is determined by the complexity of the parser returned from <code class="computeroutput"><span class="identifier">fp</span></code>.
           </p>
 <a name="spirit.qi.reference.auxiliary.lazy.example"></a><h6>
-<a name="id950890"></a>
+<a name="id793686"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/basics.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/basics.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/basics.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Basics</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="parser_concepts/nonterminal.html" title="Nonterminal">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.basics"></a><a class="link" href="basics.html" title="Parser Basics">Parser Basics</a>
 </h4></div></div></div>
 <a name="spirit.qi.reference.basics.lazy_argument"></a><h6>
-<a name="id924255"></a>
+<a name="id771346"></a>
           <a class="link" href="basics.html#spirit.qi.reference.basics.lazy_argument">Lazy Argument</a>
         </h6>
 <p>
@@ -51,7 +51,7 @@
           second argument. This is done for uniformity with Semantic Actions).
         </p>
 <a name="spirit.qi.reference.basics.character_encoding_namespace"></a><h6>
-<a name="id924391"></a>
+<a name="id771526"></a>
           <a class="link" href="basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
           Encoding Namespace</a>
         </h6>
@@ -112,7 +112,7 @@
             </li>
 </ul></div>
 <a name="spirit.qi.reference.basics.examples"></a><h6>
-<a name="id924607"></a>
+<a name="id771788"></a>
           <a class="link" href="basics.html#spirit.qi.reference.basics.examples">Examples</a>
         </h6>
 <p>
@@ -126,10 +126,12 @@
 <p>
           
 </p>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">support_utree</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assert</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">cstdlib</span><span class="special">&gt;</span>
@@ -249,11 +251,11 @@
 <p>
         </p>
 <a name="spirit.qi.reference.basics.string"></a><h6>
-<a name="id928851"></a>
+<a name="id775025"></a>
           <a class="link" href="basics.html#spirit.qi.reference.basics.string">String</a>
         </h6>
 <a name="spirit.qi.reference.basics.header"></a><h6>
-<a name="id928864"></a>
+<a name="id775045"></a>
           <a class="link" href="basics.html#spirit.qi.reference.basics.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/support/string_traits.hpp&gt;
@@ -354,7 +356,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.basics.models"></a><h6>
-<a name="id929891"></a>
+<a name="id775630"></a>
           <a class="link" href="basics.html#spirit.qi.reference.basics.models">Models</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/binary.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/binary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/binary.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Binary Parsers</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="auxiliary/lazy.html" title="Lazy Parser (lazy)">
@@ -41,7 +41,7 @@
           input.
         </p>
 <a name="spirit.qi.reference.binary.module_header"></a><h6>
-<a name="id951159"></a>
+<a name="id794026"></a>
           <a class="link" href="binary.html#spirit.qi.reference.binary.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/binary.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Binary Big Endianness Parsers</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../binary.html" title="Binary Parsers">
 <link rel="prev" href="binary_little.html" title="Binary Little Endianness Parser">
@@ -28,7 +28,7 @@
           Endianness Parsers</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.binary.binary_big.description"></a><h6>
-<a name="id958020"></a>
+<a name="id798492"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             are laid out in big endian.
           </p>
 <a name="spirit.qi.reference.binary.binary_big.header"></a><h6>
-<a name="id958037"></a>
+<a name="id798516"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/binary.hpp&gt;
@@ -46,7 +46,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.binary.binary_big.namespace"></a><h6>
-<a name="id958112"></a>
+<a name="id798615"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -90,7 +90,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_big.model_of"></a><h6>
-<a name="id958302"></a>
+<a name="id798845"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.model_of">Model
             of</a>
           </h6>
@@ -121,7 +121,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.binary.binary_big.expression_semantics"></a><h6>
-<a name="id958418"></a>
+<a name="id798983"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -222,7 +222,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_big.attributes"></a><h6>
-<a name="id958665"></a>
+<a name="id799258"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -318,14 +318,14 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_big.complexity"></a><h6>
-<a name="id958961"></a>
+<a name="id799598"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of bytes parsed
             </p></blockquote></div>
 <a name="spirit.qi.reference.binary.binary_big.example"></a><h6>
-<a name="id958982"></a>
+<a name="id799624"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Binary Little Endianness Parser</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../binary.html" title="Binary Parsers">
 <link rel="prev" href="binary_native.html" title="Binary Native Endianness Parsers">
@@ -28,7 +28,7 @@
           Little Endianness Parser</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.binary.binary_little.description"></a><h6>
-<a name="id954241"></a>
+<a name="id796746"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             that are laid out in little endian.
           </p>
 <a name="spirit.qi.reference.binary.binary_little.header"></a><h6>
-<a name="id954258"></a>
+<a name="id796771"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/binary.hpp&gt;
@@ -46,7 +46,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.binary.binary_little.namespace"></a><h6>
-<a name="id954332"></a>
+<a name="id796870"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -91,7 +91,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_little.model_of"></a><h6>
-<a name="id954523"></a>
+<a name="id797100"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.model_of">Model
             of</a>
           </h6>
@@ -122,7 +122,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.binary.binary_little.expression_semantics"></a><h6>
-<a name="id956960"></a>
+<a name="id797238"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -223,7 +223,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_little.attributes"></a><h6>
-<a name="id957207"></a>
+<a name="id797515"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -319,14 +319,14 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_little.complexity"></a><h6>
-<a name="id957503"></a>
+<a name="id797855"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of bytes parsed
             </p></blockquote></div>
 <a name="spirit.qi.reference.binary.binary_little.example"></a><h6>
-<a name="id957524"></a>
+<a name="id797881"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Binary Native Endianness Parsers</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../binary.html" title="Binary Parsers">
 <link rel="prev" href="../binary.html" title="Binary Parsers">
@@ -28,7 +28,7 @@
           Native Endianness Parsers</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.binary.binary_native.description"></a><h6>
-<a name="id951243"></a>
+<a name="id794140"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             of the target architecture.
           </p>
 <a name="spirit.qi.reference.binary.binary_native.header"></a><h6>
-<a name="id951265"></a>
+<a name="id794170"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/binary.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.binary.binary_native.namespace"></a><h6>
-<a name="id951339"></a>
+<a name="id794270"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -97,7 +97,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_native.model_of"></a><h6>
-<a name="id951567"></a>
+<a name="id794543"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.model_of">Model
             of</a>
           </h6>
@@ -134,7 +134,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.binary.binary_native.expression_semantics"></a><h6>
-<a name="id952528"></a>
+<a name="id794712"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -259,7 +259,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_native.attributes"></a><h6>
-<a name="id952837"></a>
+<a name="id795056"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -379,14 +379,14 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_native.complexity"></a><h6>
-<a name="id953216"></a>
+<a name="id795491"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of bytes parsed
             </p></blockquote></div>
 <a name="spirit.qi.reference.binary.binary_native.example"></a><h6>
-<a name="id953236"></a>
+<a name="id795518"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/char.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/char.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/char.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Character Parsers</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="binary/binary_big.html" title="Binary Big Endianness Parsers">
@@ -42,7 +42,7 @@
           etc.).
         </p>
 <a name="spirit.qi.reference.char.module_header"></a><h6>
-<a name="id959733"></a>
+<a name="id800306"></a>
           <a class="link" href="char.html#spirit.qi.reference.char.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/char.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Character Parser (char_, lit)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../char.html" title="Character Parsers">
 <link rel="prev" href="../char.html" title="Character Parsers">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.char.char"></a><a class="link" href="char.html" title="Character Parser (char_, lit)">Character Parser (<code class="computeroutput"><span class="identifier">char_</span></code>, <code class="computeroutput"><span class="identifier">lit</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.char.char.description"></a><h6>
-<a name="id959831"></a>
+<a name="id800440"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             There are various forms of <code class="computeroutput"><span class="identifier">char_</span></code>.
           </p>
 <a name="spirit.qi.reference.char.char.char_"></a><h6>
-<a name="id959878"></a>
+<a name="id800508"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.char_">char_</a>
           </h6>
 <p>
@@ -52,7 +52,7 @@
 <pre class="programlisting"><span class="identifier">char_</span> <span class="comment">// matches any character
 </span></pre>
 <a name="spirit.qi.reference.char.char.char__ch_"></a><h6>
-<a name="id959919"></a>
+<a name="id800567"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.char__ch_">char_(ch)</a>
           </h6>
 <p>
@@ -64,7 +64,7 @@
 </span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="comment">// matches x (a char)
 </span></pre>
 <a name="spirit.qi.reference.char.char.char__first__last_"></a><h6>
-<a name="id960008"></a>
+<a name="id800683"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.char__first__last_">char_(first,
             last)</a>
           </h6>
@@ -116,7 +116,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.qi.reference.char.char.char__def_"></a><h6>
-<a name="id960189"></a>
+<a name="id800923"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.char__def_">char_(def)</a>
           </h6>
 <p>
@@ -132,7 +132,7 @@
 </span><span class="identifier">char_</span><span class="special">(</span><span class="string">"\x7f\x7e"</span><span class="special">)</span> <span class="comment">// Hexadecimal 0x7F and 0x7E
 </span></pre>
 <a name="spirit.qi.reference.char.char.lit_ch_"></a><h6>
-<a name="id960303"></a>
+<a name="id801071"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.lit_ch_">lit(ch)</a>
           </h6>
 <p>
@@ -168,7 +168,7 @@
 <span class="identifier">lit</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="comment">// c is a char
 </span></pre>
 <a name="spirit.qi.reference.char.char.header"></a><h6>
-<a name="id960466"></a>
+<a name="id801287"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/char/char.hpp&gt;
@@ -178,7 +178,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.char.char.namespace"></a><h6>
-<a name="id960540"></a>
+<a name="id801386"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -208,7 +208,7 @@
             Encoding Namespace</a>.
           </p>
 <a name="spirit.qi.reference.char.char.model_of"></a><h6>
-<a name="id960659"></a>
+<a name="id801526"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -248,7 +248,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.char.char.expression_semantics"></a><h6>
-<a name="id960868"></a>
+<a name="id801797"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -368,7 +368,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.char.char.attributes"></a><h6>
-<a name="id961287"></a>
+<a name="id802296"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -485,7 +485,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.char.char.complexity"></a><h6>
-<a name="id962389"></a>
+<a name="id802777"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -495,7 +495,7 @@
               N is the number of distinct character ranges in the set.
             </p></blockquote></div>
 <a name="spirit.qi.reference.char.char.example"></a><h6>
-<a name="id962427"></a>
+<a name="id802827"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Character Classification Parsers (alnum, digit, etc.)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../char.html" title="Character Parsers">
 <link rel="prev" href="char.html" title="Character Parser (char_, lit)">
@@ -28,7 +28,7 @@
           Parsers (<code class="computeroutput"><span class="identifier">alnum</span></code>, <code class="computeroutput"><span class="identifier">digit</span></code>, etc.)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.char.char_class.description"></a><h6>
-<a name="id963045"></a>
+<a name="id803585"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.description">Description</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
             such as inhibiting case sensitivity.
           </p>
 <a name="spirit.qi.reference.char.char_class.header"></a><h6>
-<a name="id963096"></a>
+<a name="id803660"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/char/char_class.hpp&gt;
@@ -50,7 +50,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.char.char_class.namespace"></a><h6>
-<a name="id963170"></a>
+<a name="id803759"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -129,7 +129,7 @@
             Encoding Namespace</a>.
           </p>
 <a name="spirit.qi.reference.char.char_class.model_of"></a><h6>
-<a name="id963529"></a>
+<a name="id804172"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -146,7 +146,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.char.char_class.expression_semantics"></a><h6>
-<a name="id963592"></a>
+<a name="id804249"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -319,7 +319,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.char.char_class.attributes"></a><h6>
-<a name="id964045"></a>
+<a name="id804751"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.attributes">Attributes</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -327,14 +327,14 @@
               Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
             </p></blockquote></div>
 <a name="spirit.qi.reference.char.char_class.complexity"></a><h6>
-<a name="id964077"></a>
+<a name="id804796"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N)
             </p></blockquote></div>
 <a name="spirit.qi.reference.char.char_class.example"></a><h6>
-<a name="id964098"></a>
+<a name="id804823"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/directive.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Directive</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="char/char_class.html" title="Character Classification Parsers (alnum, digit, etc.)">
@@ -45,6 +45,8 @@
           Re-Establishing Skipping (<code class="computeroutput"><span class="identifier">skip</span><span class="special">[]</span></code>)</a></span></dt>
 <dt><span class="section"><a href="directive/hold.html">Parser Directive
           for Attribute Commit/Rollback (<code class="computeroutput"><span class="identifier">hold</span><span class="special">[]</span></code>)</a></span></dt>
+<dt><span class="section"><a href="directive/as.html">Parser Directives
+ Forcing Atomic Assignment (<code class="computeroutput"><span class="identifier">as</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;,</span> <span class="identifier">as_string</span><span class="special">[],</span> <span class="identifier">as_wstring</span><span class="special">[]</span></code>)</a></span></dt>
 </dl></div>
 <p>
           This module includes different directives usable to augment and parameterize
@@ -52,10 +54,11 @@
           <code class="computeroutput"><span class="identifier">lexeme</span></code>, <code class="computeroutput"><span class="identifier">omit</span></code>,
           <code class="computeroutput"><span class="identifier">raw</span></code>, <code class="computeroutput"><span class="identifier">repeat</span></code>,
           <code class="computeroutput"><span class="identifier">matches</span></code>, <code class="computeroutput"><span class="identifier">no_skip</span></code>, <code class="computeroutput"><span class="identifier">skip</span></code>,
- and <code class="computeroutput"><span class="identifier">hold</span></code> directives.
+ <code class="computeroutput"><span class="identifier">hold</span></code>, <code class="computeroutput"><span class="identifier">as</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>, <code class="computeroutput"><span class="identifier">as_string</span></code>
+ and <code class="computeroutput"><span class="identifier">as_wstring</span></code> directives.
         </p>
 <a name="spirit.qi.reference.directive.module_header"></a><h6>
-<a name="id965621"></a>
+<a name="id805332"></a>
           <a class="link" href="directive.html#spirit.qi.reference.directive.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/directive.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/hold.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/hold.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/hold.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,11 +3,11 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Directive for Attribute Commit/Rollback (hold[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Parser Directive">
 <link rel="prev" href="skip.html" title="Parser Directive Re-Establishing Skipping (skip[])">
-<link rel="next" href="../nonterminal.html" title="Nonterminal Parsers">
+<link rel="next" href="as.html" title="Parser Directives Forcing Atomic Assignment (as&lt;T&gt;, as_string[], as_wstring[])">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="skip.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../nonterminal.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="skip.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="as.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h5 class="title">
@@ -28,7 +28,7 @@
           for Attribute Commit/Rollback (<code class="computeroutput"><span class="identifier">hold</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.directive.hold.description"></a><h6>
-<a name="id977396"></a>
+<a name="id816756"></a>
             <a class="link" href="hold.html#spirit.qi.reference.directive.hold.description">Description</a>
           </h6>
 <p>
@@ -43,7 +43,7 @@
             the attribute.
           </p>
 <a name="spirit.qi.reference.directive.hold.header"></a><h6>
-<a name="id977434"></a>
+<a name="id816814"></a>
             <a class="link" href="hold.html#spirit.qi.reference.directive.hold.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/directive/hold.hpp&gt;
@@ -53,7 +53,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.directive.hold.namespace"></a><h6>
-<a name="id977509"></a>
+<a name="id816914"></a>
             <a class="link" href="hold.html#spirit.qi.reference.directive.hold.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -71,7 +71,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.hold.model_of"></a><h6>
-<a name="id977587"></a>
+<a name="id817005"></a>
             <a class="link" href="hold.html#spirit.qi.reference.directive.hold.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -87,7 +87,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.hold.expression_semantics"></a><h6>
-<a name="id977653"></a>
+<a name="id817089"></a>
             <a class="link" href="hold.html#spirit.qi.reference.directive.hold.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -128,7 +128,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.hold.attributes"></a><h6>
-<a name="id977764"></a>
+<a name="id817225"></a>
             <a class="link" href="hold.html#spirit.qi.reference.directive.hold.attributes">Attributes</a>
           </h6>
 <p>
@@ -184,7 +184,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.directive.hold.complexity"></a><h6>
-<a name="id978034"></a>
+<a name="id817552"></a>
             <a class="link" href="hold.html#spirit.qi.reference.directive.hold.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -192,7 +192,7 @@
               <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.directive.hold.example"></a><h6>
-<a name="id978062"></a>
+<a name="id817590"></a>
             <a class="link" href="hold.html#spirit.qi.reference.directive.hold.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">
@@ -243,7 +243,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="skip.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../nonterminal.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="skip.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="as.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Directive Inhibiting Skipping (lexeme[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Parser Directive">
 <link rel="prev" href="../directive.html" title="Parser Directive">
@@ -28,7 +28,7 @@
           Inhibiting Skipping (<code class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.directive.lexeme.description"></a><h6>
-<a name="id965716"></a>
+<a name="id805459"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.description">Description</a>
           </h6>
 <p>
@@ -70,7 +70,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.directive.lexeme.header"></a><h6>
-<a name="id965897"></a>
+<a name="id805706"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/directive/lexeme.hpp&gt;
@@ -80,7 +80,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.directive.lexeme.namespace"></a><h6>
-<a name="id965971"></a>
+<a name="id805805"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -98,7 +98,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.lexeme.model_of"></a><h6>
-<a name="id966049"></a>
+<a name="id805896"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -114,7 +114,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.lexeme.expression_semantics"></a><h6>
-<a name="id966118"></a>
+<a name="id805982"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -155,7 +155,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.lexeme.attributes"></a><h6>
-<a name="id966225"></a>
+<a name="id806106"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.attributes">Attributes</a>
           </h6>
 <p>
@@ -197,7 +197,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.lexeme.complexity"></a><h6>
-<a name="id966399"></a>
+<a name="id806309"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -205,7 +205,7 @@
               <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.directive.lexeme.example"></a><h6>
-<a name="id966426"></a>
+<a name="id806346"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/matches.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/matches.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/matches.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Directive Testing if Parser Succeeded (matches[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Parser Directive">
 <link rel="prev" href="repeat.html" title="Repetition Parser Directive (repeat[])">
@@ -28,7 +28,7 @@
           Testing if Parser Succeeded (<code class="computeroutput"><span class="identifier">matches</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.directive.matches.description"></a><h6>
-<a name="id974812"></a>
+<a name="id814278"></a>
             <a class="link" href="matches.html#spirit.qi.reference.directive.matches.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             matching.
           </p>
 <a name="spirit.qi.reference.directive.matches.header"></a><h6>
-<a name="id974839"></a>
+<a name="id814317"></a>
             <a class="link" href="matches.html#spirit.qi.reference.directive.matches.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/directive/matches.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.directive.matches.namespace"></a><h6>
-<a name="id974914"></a>
+<a name="id814416"></a>
             <a class="link" href="matches.html#spirit.qi.reference.directive.matches.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -65,7 +65,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.matches.model_of"></a><h6>
-<a name="id974992"></a>
+<a name="id814507"></a>
             <a class="link" href="matches.html#spirit.qi.reference.directive.matches.model_of">Model
             of</a>
           </h6>
@@ -82,7 +82,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.matches.expression_semantics"></a><h6>
-<a name="id975060"></a>
+<a name="id814592"></a>
             <a class="link" href="matches.html#spirit.qi.reference.directive.matches.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -123,7 +123,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.matches.attributes"></a><h6>
-<a name="id975167"></a>
+<a name="id814717"></a>
             <a class="link" href="matches.html#spirit.qi.reference.directive.matches.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -157,7 +157,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.matches.complexity"></a><h6>
-<a name="id975258"></a>
+<a name="id814820"></a>
             <a class="link" href="matches.html#spirit.qi.reference.directive.matches.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -165,7 +165,7 @@
               <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.directive.matches.example"></a><h6>
-<a name="id975286"></a>
+<a name="id814857"></a>
             <a class="link" href="matches.html#spirit.qi.reference.directive.matches.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Directive Inhibiting Case Sensitivity (no_case[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Parser Directive">
 <link rel="prev" href="no_skip.html" title="Parser Directive Inhibiting Skipping Without Pre-skip (no_skip[])">
@@ -28,7 +28,7 @@
           Inhibiting Case Sensitivity (<code class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.directive.no_case.description"></a><h6>
-<a name="id967566"></a>
+<a name="id807760"></a>
             <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.description">Description</a>
           </h6>
 <p>
@@ -38,7 +38,7 @@
             parser (and all its children) to be case insensitive.
           </p>
 <a name="spirit.qi.reference.directive.no_case.header"></a><h6>
-<a name="id967594"></a>
+<a name="id807801"></a>
             <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/directive/no_case.hpp&gt;
@@ -48,7 +48,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.directive.no_case.namespace"></a><h6>
-<a name="id967668"></a>
+<a name="id807900"></a>
             <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -70,7 +70,7 @@
             Encoding Namespace</a>.
           </p>
 <a name="spirit.qi.reference.directive.no_case.model_of"></a><h6>
-<a name="id968511"></a>
+<a name="id807997"></a>
             <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.model_of">Model
             of</a>
           </h6>
@@ -93,7 +93,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.no_case.expression_semantics"></a><h6>
-<a name="id968597"></a>
+<a name="id808103"></a>
             <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -133,7 +133,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.no_case.attributes"></a><h6>
-<a name="id968703"></a>
+<a name="id808222"></a>
             <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.attributes">Attributes</a>
           </h6>
 <p>
@@ -175,7 +175,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.no_case.complexity"></a><h6>
-<a name="id968898"></a>
+<a name="id808449"></a>
             <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -183,7 +183,7 @@
               <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.directive.no_case.example"></a><h6>
-<a name="id968926"></a>
+<a name="id808487"></a>
             <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_skip.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_skip.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_skip.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Directive Inhibiting Skipping Without Pre-skip (no_skip[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Parser Directive">
 <link rel="prev" href="lexeme.html" title="Parser Directive Inhibiting Skipping (lexeme[])">
@@ -28,7 +28,7 @@
           Inhibiting Skipping Without Pre-skip (<code class="computeroutput"><span class="identifier">no_skip</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.directive.no_skip.description"></a><h6>
-<a name="id966695"></a>
+<a name="id806683"></a>
             <a class="link" href="no_skip.html#spirit.qi.reference.directive.no_skip.description">Description</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             directive.
           </p>
 <a name="spirit.qi.reference.directive.no_skip.header"></a><h6>
-<a name="id966742"></a>
+<a name="id806752"></a>
             <a class="link" href="no_skip.html#spirit.qi.reference.directive.no_skip.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/directive/no_skip.hpp&gt;
@@ -49,7 +49,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.directive.no_skip.namespace"></a><h6>
-<a name="id966816"></a>
+<a name="id806851"></a>
             <a class="link" href="no_skip.html#spirit.qi.reference.directive.no_skip.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -67,7 +67,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.no_skip.model_of"></a><h6>
-<a name="id966894"></a>
+<a name="id806942"></a>
             <a class="link" href="no_skip.html#spirit.qi.reference.directive.no_skip.model_of">Model
             of</a>
           </h6>
@@ -84,7 +84,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.no_skip.expression_semantics"></a><h6>
-<a name="id966963"></a>
+<a name="id807026"></a>
             <a class="link" href="no_skip.html#spirit.qi.reference.directive.no_skip.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -124,7 +124,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.no_skip.attributes"></a><h6>
-<a name="id967069"></a>
+<a name="id807151"></a>
             <a class="link" href="no_skip.html#spirit.qi.reference.directive.no_skip.attributes">Attributes</a>
           </h6>
 <p>
@@ -166,7 +166,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.no_skip.complexity"></a><h6>
-<a name="id967243"></a>
+<a name="id807352"></a>
             <a class="link" href="no_skip.html#spirit.qi.reference.directive.no_skip.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -174,7 +174,7 @@
               <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.directive.no_skip.example"></a><h6>
-<a name="id967271"></a>
+<a name="id807389"></a>
             <a class="link" href="no_skip.html#spirit.qi.reference.directive.no_skip.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Directive Ignoring Attribute (omit[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Parser Directive">
 <link rel="prev" href="no_case.html" title="Parser Directive Inhibiting Case Sensitivity (no_case[])">
@@ -28,7 +28,7 @@
           Ignoring Attribute (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.directive.omit.description"></a><h6>
-<a name="id969564"></a>
+<a name="id809275"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             ignores the attribute of its subject parser replacing it with <code class="computeroutput"><span class="identifier">unused</span></code>.
           </p>
 <a name="spirit.qi.reference.directive.omit.header"></a><h6>
-<a name="id969599"></a>
+<a name="id809324"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/directive/omit.hpp&gt;
@@ -46,7 +46,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.directive.omit.namespace"></a><h6>
-<a name="id969673"></a>
+<a name="id809423"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -64,7 +64,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.omit.model_of"></a><h6>
-<a name="id969751"></a>
+<a name="id809512"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -80,7 +80,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.omit.expression_semantics"></a><h6>
-<a name="id969817"></a>
+<a name="id809597"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -119,7 +119,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.omit.attributes"></a><h6>
-<a name="id969922"></a>
+<a name="id809720"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -153,7 +153,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.omit.complexity"></a><h6>
-<a name="id970013"></a>
+<a name="id809824"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -161,7 +161,7 @@
               <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.directive.omit.example"></a><h6>
-<a name="id970041"></a>
+<a name="id809861"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Directive for Transduction Parsing (raw[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Parser Directive">
 <link rel="prev" href="omit.html" title="Parser Directive Ignoring Attribute (omit[])">
@@ -28,7 +28,7 @@
           Transduction Parsing (<code class="computeroutput"><span class="identifier">raw</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.directive.raw.description"></a><h6>
-<a name="id970342"></a>
+<a name="id810236"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.description">Description</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             transduction (un-attributed) behavior for a subject parser.
           </p>
 <a name="spirit.qi.reference.directive.raw.header"></a><h6>
-<a name="id970403"></a>
+<a name="id810321"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/directive/raw.hpp&gt;
@@ -49,7 +49,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.directive.raw.namespace"></a><h6>
-<a name="id970477"></a>
+<a name="id810420"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -67,7 +67,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.raw.model_of"></a><h6>
-<a name="id970555"></a>
+<a name="id810511"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -87,7 +87,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.raw.expression_semantics"></a><h6>
-<a name="id970650"></a>
+<a name="id810631"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -128,7 +128,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.raw.attributes"></a><h6>
-<a name="id971938"></a>
+<a name="id810785"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.attributes">Attributes</a>
           </h6>
 <p>
@@ -179,7 +179,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.directive.raw.complexity"></a><h6>
-<a name="id972154"></a>
+<a name="id811040"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -187,7 +187,7 @@
               <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.directive.raw.example"></a><h6>
-<a name="id972182"></a>
+<a name="id811077"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Repetition Parser Directive (repeat[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Parser Directive">
 <link rel="prev" href="raw.html" title="Directive for Transduction Parsing (raw[])">
@@ -28,7 +28,7 @@
           Parser Directive (<code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.directive.repeat.description"></a><h6>
-<a name="id972496"></a>
+<a name="id811466"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.description">Description</a>
           </h6>
 <p>
@@ -51,7 +51,7 @@
               </li>
 </ul></div>
 <a name="spirit.qi.reference.directive.repeat.header"></a><h6>
-<a name="id972559"></a>
+<a name="id811545"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/directive/repeat.hpp&gt;
@@ -61,7 +61,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.directive.repeat.namespace"></a><h6>
-<a name="id972633"></a>
+<a name="id811644"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -87,7 +87,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.repeat.model_of"></a><h6>
-<a name="id972748"></a>
+<a name="id811779"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -111,7 +111,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.repeat.expression_semantics"></a><h6>
-<a name="id972878"></a>
+<a name="id811945"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -198,7 +198,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.repeat.attributes"></a><h6>
-<a name="id973196"></a>
+<a name="id812326"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.attributes">Attributes</a>
           </h6>
 <p>
@@ -292,7 +292,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.repeat.complexity"></a><h6>
-<a name="id973874"></a>
+<a name="id813127"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -301,7 +301,7 @@
               itself is O(N), where N is the number of repetitions to execute.
             </p></blockquote></div>
 <a name="spirit.qi.reference.directive.repeat.example"></a><h6>
-<a name="id973902"></a>
+<a name="id813167"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Directive Re-Establishing Skipping (skip[])</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../directive.html" title="Parser Directive">
 <link rel="prev" href="matches.html" title="Directive Testing if Parser Succeeded (matches[])">
@@ -28,7 +28,7 @@
           Re-Establishing Skipping (<code class="computeroutput"><span class="identifier">skip</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.directive.skip.description"></a><h6>
-<a name="id975708"></a>
+<a name="id815383"></a>
             <a class="link" href="skip.html#spirit.qi.reference.directive.skip.description">Description</a>
           </h6>
 <p>
@@ -61,7 +61,7 @@
               </li>
 </ul></div>
 <a name="spirit.qi.reference.directive.skip.header"></a><h6>
-<a name="id975858"></a>
+<a name="id815585"></a>
             <a class="link" href="skip.html#spirit.qi.reference.directive.skip.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/directive/skip.hpp&gt;
@@ -71,7 +71,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.directive.skip.namespace"></a><h6>
-<a name="id975933"></a>
+<a name="id815684"></a>
             <a class="link" href="skip.html#spirit.qi.reference.directive.skip.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -89,7 +89,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.skip.model_of"></a><h6>
-<a name="id976011"></a>
+<a name="id815775"></a>
             <a class="link" href="skip.html#spirit.qi.reference.directive.skip.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -105,7 +105,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.skip.expression_semantics"></a><h6>
-<a name="id976077"></a>
+<a name="id815860"></a>
             <a class="link" href="skip.html#spirit.qi.reference.directive.skip.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -159,7 +159,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.skip.attributes"></a><h6>
-<a name="id976809"></a>
+<a name="id816043"></a>
             <a class="link" href="skip.html#spirit.qi.reference.directive.skip.attributes">Attributes</a>
           </h6>
 <p>
@@ -219,7 +219,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.skip.complexity"></a><h6>
-<a name="id977120"></a>
+<a name="id816405"></a>
             <a class="link" href="skip.html#spirit.qi.reference.directive.skip.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -227,7 +227,7 @@
               <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.directive.skip.example"></a><h6>
-<a name="id977148"></a>
+<a name="id816442"></a>
             <a class="link" href="skip.html#spirit.qi.reference.directive.skip.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,10 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Nonterminal Parsers</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="directive/hold.html" title="Parser Directive for Attribute Commit/Rollback (hold[])">
+<link rel="prev" href="directive/as.html" title="Parser Directives Forcing Atomic Assignment (as&lt;T&gt;, as_string[], as_wstring[])">
 <link rel="next" href="nonterminal/rule.html" title="Parser Rule">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="directive/hold.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nonterminal/rule.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="directive/as.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nonterminal/rule.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
@@ -31,7 +31,7 @@
 <dt><span class="section">Parser Grammar</span></dt>
 </dl></div>
 <a name="spirit.qi.reference.nonterminal.module_headers"></a><h6>
-<a name="id978442"></a>
+<a name="id820679"></a>
           <a class="link" href="nonterminal.html#spirit.qi.reference.nonterminal.module_headers">Module Headers</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/nonterminal.hpp&gt;
@@ -51,7 +51,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="directive/hold.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nonterminal/rule.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="directive/as.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nonterminal/rule.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal/grammar.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal/grammar.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal/grammar.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Grammar</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../nonterminal.html" title="Nonterminal Parsers">
 <link rel="prev" href="rule.html" title="Parser Rule">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.nonterminal.grammar"></a><a class="link" href="grammar.html" title="Parser Grammar">Parser Grammar</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.nonterminal.grammar.description"></a><h6>
-<a name="id982725"></a>
+<a name="id823723"></a>
             <a class="link" href="grammar.html#spirit.qi.reference.nonterminal.grammar.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             Grammars can be composed to form more complex grammars.
           </p>
 <a name="spirit.qi.reference.nonterminal.grammar.header"></a><h6>
-<a name="id982756"></a>
+<a name="id823771"></a>
             <a class="link" href="grammar.html#spirit.qi.reference.nonterminal.grammar.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/nonterminal/grammar.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.nonterminal.grammar.namespace"></a><h6>
-<a name="id982831"></a>
+<a name="id823870"></a>
             <a class="link" href="grammar.html#spirit.qi.reference.nonterminal.grammar.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -64,14 +64,14 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.nonterminal.grammar.synopsis"></a><h6>
-<a name="id982911"></a>
+<a name="id823964"></a>
             <a class="link" href="grammar.html#spirit.qi.reference.nonterminal.grammar.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A3</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">grammar</span><span class="special">;</span>
 </pre>
 <a name="spirit.qi.reference.nonterminal.grammar.template_parameters"></a><h6>
-<a name="id983224"></a>
+<a name="id824080"></a>
             <a class="link" href="grammar.html#spirit.qi.reference.nonterminal.grammar.template_parameters">Template
             parameters</a>
           </h6>
@@ -226,7 +226,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.nonterminal.grammar.model_of"></a><h6>
-<a name="id983605"></a>
+<a name="id824521"></a>
             <a class="link" href="grammar.html#spirit.qi.reference.nonterminal.grammar.model_of">Model
             of</a>
           </h6>
@@ -243,7 +243,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.nonterminal.grammar.expression_semantics"></a><h6>
-<a name="id983664"></a>
+<a name="id824591"></a>
             <a class="link" href="grammar.html#spirit.qi.reference.nonterminal.grammar.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -310,7 +310,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.nonterminal.grammar.attributes"></a><h6>
-<a name="id983980"></a>
+<a name="id824968"></a>
             <a class="link" href="grammar.html#spirit.qi.reference.nonterminal.grammar.attributes">Attributes</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -318,14 +318,14 @@
               its synthesized attribute. See <a class="link" href="../parser_concepts/nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal.attributes"><code class="computeroutput"><span class="identifier">Attribute</span></code></a>
             </p></blockquote></div>
 <a name="spirit.qi.reference.nonterminal.grammar.complexity"></a><h6>
-<a name="id984020"></a>
+<a name="id825021"></a>
             <a class="link" href="grammar.html#spirit.qi.reference.nonterminal.grammar.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               The complexity is defined by the complexity of the its definition.
             </p></blockquote></div>
 <a name="spirit.qi.reference.nonterminal.grammar.example"></a><h6>
-<a name="id984040"></a>
+<a name="id825048"></a>
             <a class="link" href="grammar.html#spirit.qi.reference.nonterminal.grammar.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal/rule.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal/rule.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/nonterminal/rule.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Rule</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../nonterminal.html" title="Nonterminal Parsers">
 <link rel="prev" href="../nonterminal.html" title="Nonterminal Parsers">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.nonterminal.rule"></a><a class="link" href="rule.html" title="Parser Rule">Parser Rule</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.nonterminal.rule.description"></a><h6>
-<a name="id978526"></a>
+<a name="id820791"></a>
             <a class="link" href="rule.html#spirit.qi.reference.nonterminal.rule.description">Description</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
             in recursive descent parsing.
           </p>
 <a name="spirit.qi.reference.nonterminal.rule.header"></a><h6>
-<a name="id978553"></a>
+<a name="id820832"></a>
             <a class="link" href="rule.html#spirit.qi.reference.nonterminal.rule.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/nonterminal/rule.hpp&gt;
@@ -50,7 +50,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.nonterminal.rule.namespace"></a><h6>
-<a name="id978627"></a>
+<a name="id820932"></a>
             <a class="link" href="rule.html#spirit.qi.reference.nonterminal.rule.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -67,14 +67,14 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.nonterminal.rule.synopsis"></a><h6>
-<a name="id978708"></a>
+<a name="id821026"></a>
             <a class="link" href="rule.html#spirit.qi.reference.nonterminal.rule.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A3</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">rule</span><span class="special">;</span>
 </pre>
 <a name="spirit.qi.reference.nonterminal.rule.template_parameters"></a><h6>
-<a name="id978801"></a>
+<a name="id821142"></a>
             <a class="link" href="rule.html#spirit.qi.reference.nonterminal.rule.template_parameters">Template
             parameters</a>
           </h6>
@@ -233,7 +233,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.nonterminal.rule.model_of"></a><h6>
-<a name="id980971"></a>
+<a name="id821586"></a>
             <a class="link" href="rule.html#spirit.qi.reference.nonterminal.rule.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -264,7 +264,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.nonterminal.rule.expression_semantics"></a><h6>
-<a name="id981133"></a>
+<a name="id821782"></a>
             <a class="link" href="rule.html#spirit.qi.reference.nonterminal.rule.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -402,7 +402,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.nonterminal.rule.attributes"></a><h6>
-<a name="id981681"></a>
+<a name="id822440"></a>
             <a class="link" href="rule.html#spirit.qi.reference.nonterminal.rule.attributes">Attributes</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -410,14 +410,14 @@
               its synthesized attribute. See <a class="link" href="../parser_concepts/nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal.attributes"><code class="computeroutput"><span class="identifier">Attribute</span></code></a>
             </p></blockquote></div>
 <a name="spirit.qi.reference.nonterminal.rule.complexity"></a><h6>
-<a name="id981721"></a>
+<a name="id822493"></a>
             <a class="link" href="rule.html#spirit.qi.reference.nonterminal.rule.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               The complexity is defined by the complexity of the RHS parser, <code class="computeroutput"><span class="identifier">p</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.nonterminal.rule.example"></a><h6>
-<a name="id981748"></a>
+<a name="id822530"></a>
             <a class="link" href="rule.html#spirit.qi.reference.nonterminal.rule.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Numeric Parsers</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="nonterminal/grammar.html" title="Parser Grammar">
@@ -56,7 +56,7 @@
           write extremely tight generic C++ code that rivals, if not surpasses C.
         </p>
 <a name="spirit.qi.reference.numeric.module_header"></a><h6>
-<a name="id984538"></a>
+<a name="id825670"></a>
           <a class="link" href="numeric.html#spirit.qi.reference.numeric.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/numeric.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Boolean Parser (bool_)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../numeric.html" title="Numeric Parsers">
 <link rel="prev" href="real.html" title="Real Number Parsers (float_, double_, etc.)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">bool_</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.numeric.boolean.description"></a><h6>
-<a name="id997826"></a>
+<a name="id840257"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.description">Description</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             expression requirements (documented below).
           </p>
 <a name="spirit.qi.reference.numeric.boolean.header"></a><h6>
-<a name="id997865"></a>
+<a name="id840314"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/numeric/bool.hpp&gt;
@@ -49,7 +49,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.numeric.boolean.namespace"></a><h6>
-<a name="id997939"></a>
+<a name="id840413"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -81,14 +81,14 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.numeric.boolean.synopsis"></a><h6>
-<a name="id998092"></a>
+<a name="id840592"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BooleanPolicies</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">bool_parser</span><span class="special">;</span>
 </pre>
 <a name="spirit.qi.reference.numeric.boolean.template_parameters"></a><h6>
-<a name="id998156"></a>
+<a name="id840676"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.template_parameters">Template
             parameters</a>
           </h6>
@@ -153,7 +153,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.numeric.boolean.model_of"></a><h6>
-<a name="id998303"></a>
+<a name="id840838"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -164,11 +164,6 @@
 <dl>
 <dt><span class="term"><code class="computeroutput"><span class="identifier">BP</span></code></span></dt>
 <dd><p>
- An instance of <code class="computeroutput"><span class="identifier">bool_parser</span></code>
- (type).
- </p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">BP</span></code></span></dt>
-<dd><p>
                   A boolean <code class="computeroutput"><span class="identifier">Policies</span></code>
                   (type).
                 </p></dd>
@@ -177,6 +172,11 @@
                   An object of <code class="computeroutput"><span class="identifier">B</span></code>,
                   the numeric base type.
                 </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">boolean</span></code></span></dt>
+<dd><p>
+ Numeric literal, any boolean value, or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ Argument</a> that evaluates to a boolean value.
+ </p></dd>
 <dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code>, <code class="computeroutput"><span class="identifier">l</span></code></span></dt>
 <dd><p>
                   <a href="http://www.sgi.com/tech/stl/ForwardIterator.html" target="_top"><code class="computeroutput"><span class="identifier">ForwardIterator</span></code></a>. first/last
@@ -198,7 +198,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.numeric.boolean.expression_semantics"></a><h6>
-<a name="id998530"></a>
+<a name="id841111"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -227,50 +227,93 @@
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">BP</span><span class="special">()</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bool_</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Instantiate and (default) construct a <code class="computeroutput"><span class="identifier">bool_parser</span></code>
+ Parse a boolean using the default policies (<code class="computeroutput"><span class="identifier">bool_policies</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>).
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">bool_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">boolean</span>
+<span class="identifier">lit</span><span class="special">(</span><span class="identifier">boolean</span><span class="special">)</span>
+<span class="identifier">bool_</span><span class="special">(</span><span class="identifier">boolean</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ Match the literal <code class="computeroutput"><span class="identifier">boolean</span></code>
+ using the default policies (<code class="computeroutput"><span class="identifier">bool_policies</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">true_</span>
+<span class="identifier">false_</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create a <code class="computeroutput"><span class="identifier">bool_parser</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">bool_policies</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>
+ Match <code class="computeroutput"><span class="string">"true"</span></code>
+ and <code class="computeroutput"><span class="string">"false"</span></code>,
+ respectively.
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">true_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bool_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">BoolPolicies</span>
+<span class="special">&gt;()</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create a <code class="computeroutput"><span class="identifier">bool_parser</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">bool_policies</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>
- which is succeeding only after matching <code class="computeroutput"><span class="string">"true"</span></code>.
+ Parse a real of type <code class="computeroutput"><span class="identifier">T</span></code>
+ using <code class="computeroutput"><span class="identifier">BoolPolicies</span></code>.
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">false_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bool_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">BoolPolicies</span>
+<span class="special">&gt;()(</span><span class="identifier">boolean</span><span class="special">)</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create a <code class="computeroutput"><span class="identifier">bool_parser</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">bool_policies</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>
- which is succeeding only after matching <code class="computeroutput"><span class="string">"false"</span></code>.
+ Match the literal <code class="computeroutput"><span class="identifier">boolean</span></code>
+ of type <code class="computeroutput"><span class="identifier">T</span></code> using
+ <code class="computeroutput"><span class="identifier">BoolPolicies</span></code>.
                     </p>
                   </td>
 </tr>
@@ -287,22 +330,95 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.numeric.boolean.attributes"></a><h6>
-<a name="id998862"></a>
+<a name="id841593"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.attributes">Attributes</a>
           </h6>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">B</span></code>, The boolean type
- of the boolean parser.
- </p></blockquote></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Attribute
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">boolean</span>
+<span class="identifier">lit</span><span class="special">(</span><span class="identifier">boolean</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">true_</span>
+<span class="identifier">false_</span>
+<span class="identifier">bool_</span>
+<span class="identifier">bool_</span><span class="special">(</span><span class="identifier">boolean</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">bool</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bool_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">BoolPolicies</span>
+<span class="special">&gt;()</span>
+<span class="identifier">bool_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">BoolPolicies</span>
+<span class="special">&gt;()(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
 <a name="spirit.qi.reference.numeric.boolean.complexity"></a><h6>
-<a name="id998890"></a>
+<a name="id841875"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of characters being parsed.
             </p></blockquote></div>
 <a name="spirit.qi.reference.numeric.boolean.minimum_expression_requirements_for__code__phrase_role__identifier__b__phrase___code_"></a><h6>
-<a name="id998910"></a>
+<a name="id841903"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.minimum_expression_requirements_for__code__phrase_role__identifier__b__phrase___code_">Minimum
             Expression Requirements for <code class="computeroutput"><span class="identifier">B</span></code></a>
           </h6>
@@ -342,7 +458,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code_"></a><h6>
-<a name="id999018"></a>
+<a name="id842036"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code_">Boolean
             <code class="computeroutput"><span class="identifier">Policies</span></code></a>
           </h6>
@@ -360,7 +476,7 @@
             and <code class="computeroutput"><span class="string">"false"</span></code>.
           </p>
 <a name="spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code__expression_requirements"></a><h6>
-<a name="id999084"></a>
+<a name="id842134"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code__expression_requirements">Boolean
             <code class="computeroutput"><span class="identifier">Policies</span></code> Expression Requirements</a>
           </h6>
@@ -427,7 +543,7 @@
             or <code class="computeroutput"><span class="keyword">false</span></code>).
           </p>
 <a name="spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code__specializations"></a><h6>
-<a name="id999343"></a>
+<a name="id842451"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code__specializations">Boolean
             <code class="computeroutput"><span class="identifier">Policies</span></code> Specializations</a>
           </h6>
@@ -457,7 +573,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.qi.reference.numeric.boolean.example"></a><h6>
-<a name="id999794"></a>
+<a name="id843013"></a>
             <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">
@@ -476,7 +592,9 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">bool_</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">val</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">lit</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">bool_</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">bool_parser</span><span class="special">;</span>
 </pre>
 <p>
@@ -487,8 +605,21 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"true"</span><span class="special">,</span> <span class="identifier">bool_</span><span class="special">);</span>
+<pre class="programlisting"><span class="comment">// bool
+</span><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"true"</span><span class="special">,</span> <span class="identifier">bool_</span><span class="special">);</span>
 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"false"</span><span class="special">,</span> <span class="identifier">bool_</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"true"</span><span class="special">,</span> <span class="identifier">bool_</span><span class="special">(</span><span class="keyword">true</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"false"</span><span class="special">,</span> <span class="identifier">bool_</span><span class="special">(</span><span class="keyword">false</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"true"</span><span class="special">,</span> <span class="identifier">bool_</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="keyword">true</span><span class="special">)));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"false"</span><span class="special">,</span> <span class="identifier">bool_</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="keyword">false</span><span class="special">)));</span>
+
+<span class="comment">// literals
+</span><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"true"</span><span class="special">,</span> <span class="keyword">true</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"false"</span><span class="special">,</span> <span class="keyword">false</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"true"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="keyword">true</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"false"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="keyword">false</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"true"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="keyword">true</span><span class="special">)));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"false"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="keyword">false</span><span class="special">)));</span>
 </pre>
 <p>
           </p>
@@ -531,6 +662,8 @@
 <pre class="programlisting"><span class="identifier">bool_parser</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">backwards_bool_policies</span><span class="special">&gt;</span> <span class="identifier">backwards_bool</span><span class="special">;</span>
 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"true"</span><span class="special">,</span> <span class="identifier">backwards_bool</span><span class="special">);</span>
 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"eurt"</span><span class="special">,</span> <span class="identifier">backwards_bool</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"true"</span><span class="special">,</span> <span class="identifier">backwards_bool</span><span class="special">(</span><span class="keyword">true</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"eurt"</span><span class="special">,</span> <span class="identifier">backwards_bool</span><span class="special">(</span><span class="keyword">false</span><span class="special">));</span>
 </pre>
 <p>
           </p>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Signed Integer Parsers (int_, etc.)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../numeric.html" title="Numeric Parsers">
 <link rel="prev" href="uint.html" title="Unsigned Integer Parsers (uint_, etc.)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">int_</span></code>, etc.)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.numeric.int.description"></a><h6>
-<a name="id988807"></a>
+<a name="id829494"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.description">Description</a>
           </h6>
 <p>
@@ -46,7 +46,7 @@
             type follows certain expression requirements (documented below).
           </p>
 <a name="spirit.qi.reference.numeric.int.header"></a><h6>
-<a name="id988871"></a>
+<a name="id829587"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/numeric/int.hpp&gt;
@@ -56,7 +56,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.numeric.int.namespace"></a><h6>
-<a name="id988945"></a>
+<a name="id829686"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -69,6 +69,12 @@
 <tbody>
 <tr><td>
                     <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::qi::lit</span></code>
+ </p>
+ </td></tr>
+<tr><td>
+ <p>
                       <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">short_</span> <span class="comment">//
                       alias: boost::spirit::qi::short_</span></code>
                     </p>
@@ -107,7 +113,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.numeric.int.synopsis"></a><h6>
-<a name="id989173"></a>
+<a name="id830005"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
@@ -118,7 +124,7 @@
 <span class="keyword">struct</span> <span class="identifier">int_parser</span><span class="special">;</span>
 </pre>
 <a name="spirit.qi.reference.numeric.int.template_parameters"></a><h6>
-<a name="id989269"></a>
+<a name="id830124"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.template_parameters">Template
             parameters</a>
           </h6>
@@ -171,8 +177,8 @@
                   </td>
 <td>
                     <p>
- The radix base. This can be either 2: binary, 8: octal, 10:
- decimal and 16: hexadecimal.
+ The radix base. This can be either 2 for binary, 8 for octal,
+ 10 for decimal and 16 for hexadecimal.
                     </p>
                   </td>
 <td>
@@ -219,7 +225,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.numeric.int.model_of"></a><h6>
-<a name="id989601"></a>
+<a name="id830323"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -228,20 +234,20 @@
 <div class="variablelist">
 <p class="title"><b>Notation</b></p>
 <dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">NP</span></code></span></dt>
-<dd><p>
- An instance of <code class="computeroutput"><span class="identifier">int_parser</span></code>
- (type).
- </p></dd>
 <dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
 <dd><p>
                   An object of <code class="computeroutput"><span class="identifier">T</span></code>,
                   the numeric base type.
                 </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">num</span></code></span></dt>
+<dd><p>
+ Numeric literal, any signed integer value, or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ Argument</a> that evaluates to a signed integer value.
+ </p></dd>
 </dl>
 </div>
 <a name="spirit.qi.reference.numeric.int.expression_semantics"></a><h6>
-<a name="id989691"></a>
+<a name="id830432"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -270,64 +276,84 @@
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">NP</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Instantiate and (default) construct an <code class="computeroutput"><span class="identifier">int_parser</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">short_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">short_</span>
+<span class="identifier">int_</span>
+<span class="identifier">long_</span>
+<span class="identifier">long_long</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create an <code class="computeroutput"><span class="identifier">int_parser</span><span class="special">&lt;</span><span class="keyword">short</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ Parse a signed integer using the default radix (10).
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">long_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">num</span>
+<span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">short_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">int_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">long_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">long_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create an <code class="computeroutput"><span class="identifier">int_parser</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ Match the literal <code class="computeroutput"><span class="identifier">num</span></code>
+ using the default radix (10).
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">int_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">int_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
+<span class="special">&gt;()</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create an <code class="computeroutput"><span class="identifier">int_parser</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ Parse a signed integer of type <code class="computeroutput"><span class="identifier">T</span></code>
+ using radix <code class="computeroutput"><span class="identifier">Radix</span></code>,
+ with a minimum of <code class="computeroutput"><span class="identifier">MinDigits</span></code>
+ and a maximum of <code class="computeroutput"><span class="identifier">MaxDigits</span></code>.
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">long_long</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">int_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
+<span class="special">&gt;()(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create an <code class="computeroutput"><span class="identifier">int_parser</span><span class="special">&lt;</span><span class="keyword">long</span>
- <span class="keyword">long</span><span class="special">,</span>
- <span class="number">10</span><span class="special">,</span>
- <span class="number">1</span><span class="special">,</span>
- <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ Match the literal <code class="computeroutput"><span class="identifier">num</span></code>
+ of type <code class="computeroutput"><span class="identifier">T</span></code> using
+ radix <code class="computeroutput"><span class="identifier">Radix</span></code>,
+ with a minimum of <code class="computeroutput"><span class="identifier">MinDigits</span></code>
+ and a maximum of <code class="computeroutput"><span class="identifier">MaxDigits</span></code>.
                     </p>
                   </td>
 </tr>
@@ -349,22 +375,144 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.numeric.int.attributes"></a><h6>
-<a name="id990115"></a>
+<a name="id830982"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.attributes">Attributes</a>
           </h6>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">T</span></code>, The numeric base
- type of the numeric parser.
- </p></blockquote></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Attribute
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">num</span>
+<span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">short_</span>
+<span class="identifier">short_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">short</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">int_</span>
+<span class="identifier">int_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">long_</span>
+<span class="identifier">long_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">long</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">long_long</span>
+<span class="identifier">long_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">long_long_type</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">int_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
+<span class="special">&gt;()</span>
+<span class="identifier">int_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
+<span class="special">&gt;()(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
 <a name="spirit.qi.reference.numeric.int.complexity"></a><h6>
-<a name="id990143"></a>
+<a name="id831472"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of digits being parsed plus the sign.
             </p></blockquote></div>
 <a name="spirit.qi.reference.numeric.int.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_"></a><h6>
-<a name="id990163"></a>
+<a name="id831500"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_">Minimum
             Expression Requirements for <code class="computeroutput"><span class="identifier">T</span></code></a>
           </h6>
@@ -525,7 +673,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.numeric.int.example"></a><h6>
-<a name="id990725"></a>
+<a name="id832166"></a>
             <a class="link" href="int.html#spirit.qi.reference.numeric.int.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">
@@ -544,7 +692,9 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">int_</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">val</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">lit</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">int_</span><span class="special">;</span>
 </pre>
 <p>
           </p>
@@ -554,8 +704,21 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345"</span><span class="special">,</span> <span class="identifier">int_</span><span class="special">);</span>
+<pre class="programlisting"><span class="comment">// signed int
+</span><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345"</span><span class="special">,</span> <span class="identifier">int_</span><span class="special">);</span>
 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345"</span><span class="special">,</span> <span class="identifier">int_</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345"</span><span class="special">,</span> <span class="identifier">int_</span><span class="special">(</span><span class="number">12345</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345"</span><span class="special">,</span> <span class="identifier">int_</span><span class="special">(-</span><span class="number">12345</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345"</span><span class="special">,</span> <span class="identifier">int_</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="number">12345</span><span class="special">)));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345"</span><span class="special">,</span> <span class="identifier">int_</span><span class="special">(</span><span class="identifier">val</span><span class="special">(-</span><span class="number">12345</span><span class="special">)));</span>
+
+<span class="comment">// literals
+</span><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345"</span><span class="special">,</span> <span class="number">12345</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345"</span><span class="special">,</span> <span class="special">-</span><span class="number">12345</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="number">12345</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(-</span><span class="number">12345</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="number">12345</span><span class="special">)));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">val</span><span class="special">(-</span><span class="number">12345</span><span class="special">)));</span>
 </pre>
 <p>
           </p>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Real Number Parsers (float_, double_, etc.)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../numeric.html" title="Numeric Parsers">
 <link rel="prev" href="int.html" title="Signed Integer Parsers (int_, etc.)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">float_</span></code>, <code class="computeroutput"><span class="identifier">double_</span></code>, etc.)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.numeric.real.description"></a><h6>
-<a name="id990881"></a>
+<a name="id832856"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             (documented below).
           </p>
 <a name="spirit.qi.reference.numeric.real.header"></a><h6>
-<a name="id990919"></a>
+<a name="id832913"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/numeric/real.hpp&gt;
@@ -51,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.numeric.real.namespace"></a><h6>
-<a name="id990993"></a>
+<a name="id833012"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -64,6 +64,12 @@
 <tbody>
 <tr><td>
                     <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::qi::lit</span></code>
+ </p>
+ </td></tr>
+<tr><td>
+ <p>
                       <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">float_</span> <span class="comment">//
                       alias: boost::spirit::qi::float_</span></code>
                     </p>
@@ -83,14 +89,14 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.numeric.real.synopsis"></a><h6>
-<a name="id991146"></a>
+<a name="id833235"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">RealPolicies</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">real_parser</span><span class="special">;</span>
 </pre>
 <a name="spirit.qi.reference.numeric.real.template_parameters"></a><h6>
-<a name="id991211"></a>
+<a name="id833319"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.template_parameters">Template
             parameters</a>
           </h6>
@@ -155,7 +161,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.numeric.real.model_of"></a><h6>
-<a name="id991350"></a>
+<a name="id833471"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -164,21 +170,21 @@
 <div class="variablelist">
 <p class="title"><b>Notation</b></p>
 <dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">NP</span></code></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
 <dd><p>
- An instance of <code class="computeroutput"><span class="identifier">real_parser</span></code>
- (type).
+ An object of <code class="computeroutput"><span class="identifier">T</span></code>,
+ the numeric base type.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">num</span></code></span></dt>
+<dd><p>
+ Numeric literal, any real value, or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ Argument</a> that evaluates to a real value.
                 </p></dd>
 <dt><span class="term"><code class="computeroutput"><span class="identifier">RP</span></code></span></dt>
 <dd><p>
                   A <code class="computeroutput"><span class="identifier">RealPolicies</span></code>
                   (type).
                 </p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
-<dd><p>
- An object of <code class="computeroutput"><span class="identifier">T</span></code>,
- the numeric base type.
- </p></dd>
 <dt><span class="term"><code class="computeroutput"><span class="identifier">exp</span></code></span></dt>
 <dd><p>
                   A <code class="computeroutput"><span class="keyword">int</span></code> exponent.
@@ -195,7 +201,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.numeric.real.expression_semantics"></a><h6>
-<a name="id991555"></a>
+<a name="id833720"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -224,66 +230,198 @@
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">NP</span><span class="special">()</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">float_</span>
+<span class="identifier">double_</span>
+<span class="identifier">long_double</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Instantiate and (default) construct an <code class="computeroutput"><span class="identifier">real_parser</span></code>
+ Parse a real using the default policies (<code class="computeroutput"><span class="identifier">real_policies</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>).
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">float_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">num</span>
+<span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">float_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">double_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">long_double</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create an <code class="computeroutput"><span class="identifier">real_parser</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">,</span> <span class="identifier">real_policies</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>
+ Match the literal <code class="computeroutput"><span class="identifier">num</span></code>
+ using the default policies (<code class="computeroutput"><span class="identifier">real_policies</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>).
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">double_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">real_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">RealPolicies</span>
+<span class="special">&gt;()</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create an <code class="computeroutput"><span class="identifier">real_parser</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">real_policies</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>
+ Parse a real of type <code class="computeroutput"><span class="identifier">T</span></code>
+ using <code class="computeroutput"><span class="identifier">RealPolicies</span></code>.
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">long_double</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">real_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">RealPolicies</span>
+<span class="special">&gt;()(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create an <code class="computeroutput"><span class="identifier">real_parser</span><span class="special">&lt;</span><span class="keyword">long</span>
- <span class="keyword">double</span><span class="special">,</span>
- <span class="identifier">real_policies</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span>
- <span class="special">&gt;</span></code>
+ Match the literal <code class="computeroutput"><span class="identifier">num</span></code>
+ of type <code class="computeroutput"><span class="identifier">T</span></code> using
+ <code class="computeroutput"><span class="identifier">RealPolicies</span></code>.
                     </p>
                   </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.numeric.real.attributes"></a><h6>
-<a name="id991926"></a>
+<a name="id834164"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.attributes">Attributes</a>
           </h6>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">T</span></code>, The numeric base
- type of the numeric parser.
- </p></blockquote></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Attribute
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">num</span>
+<span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">float_</span>
+<span class="identifier">float_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">float</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">double_</span>
+<span class="identifier">double_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">double</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">long_double</span>
+<span class="identifier">long_double</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">real_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">RealPolicies</span>
+<span class="special">&gt;()</span>
+<span class="identifier">real_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">RealPolicies</span>
+<span class="special">&gt;()(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
 <a name="spirit.qi.reference.numeric.real.complexity"></a><h6>
-<a name="id991954"></a>
+<a name="id834553"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -291,7 +429,7 @@
               sign, etc.) being parsed.
             </p></blockquote></div>
 <a name="spirit.qi.reference.numeric.real.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_"></a><h6>
-<a name="id991974"></a>
+<a name="id834582"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_">Minimum
             Expression Requirements for <code class="computeroutput"><span class="identifier">T</span></code></a>
           </h6>
@@ -513,7 +651,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code_"></a><h6>
-<a name="id992877"></a>
+<a name="id835685"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code_"><code class="computeroutput"><span class="identifier">RealPolicies</span></code></a>
           </h6>
 <p>
@@ -661,7 +799,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code__expression_requirements"></a><h6>
-<a name="id993713"></a>
+<a name="id836710"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code__expression_requirements"><code class="computeroutput"><span class="identifier">RealPolicies</span></code> Expression Requirements</a>
           </h6>
 <p>
@@ -875,7 +1013,7 @@
             be automatically applied afterwards.
           </p>
 <a name="spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code__specializations"></a><h6>
-<a name="id996220"></a>
+<a name="id837736"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code__specializations"><code class="computeroutput"><span class="identifier">RealPolicies</span></code> Specializations</a>
           </h6>
 <p>
@@ -891,7 +1029,7 @@
 <span class="special">};</span>
 </pre>
 <a name="spirit.qi.reference.numeric.real.example"></a><h6>
-<a name="id996355"></a>
+<a name="id837912"></a>
             <a class="link" href="real.html#spirit.qi.reference.numeric.real.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">
@@ -910,7 +1048,9 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">val</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">lit</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">real_parser</span><span class="special">;</span>
 </pre>
 <p>
@@ -921,7 +1061,21 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345e6"</span><span class="special">,</span> <span class="identifier">double_</span><span class="special">);</span>
+<pre class="programlisting"><span class="comment">// double
+</span><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345e6"</span><span class="special">,</span> <span class="identifier">double_</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345e6"</span><span class="special">,</span> <span class="identifier">double_</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345e6"</span><span class="special">,</span> <span class="identifier">double_</span><span class="special">(</span><span class="number">12345e6</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345e6"</span><span class="special">,</span> <span class="identifier">double_</span><span class="special">(-</span><span class="number">123456e6</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345e6"</span><span class="special">,</span> <span class="identifier">double_</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="number">12345e6</span><span class="special">)));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345e6"</span><span class="special">,</span> <span class="identifier">double_</span><span class="special">(</span><span class="identifier">val</span><span class="special">(-</span><span class="number">123456e6</span><span class="special">)));</span>
+
+<span class="comment">// literals
+</span><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345e6"</span><span class="special">,</span> <span class="number">12345e6</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345e6"</span><span class="special">,</span> <span class="special">-</span><span class="number">12345e6</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345e6"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="number">12345e6</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345e6"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(-</span><span class="number">123456e6</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"+12345e6"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="number">12345e6</span><span class="special">)));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"-12345e6"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">val</span><span class="special">(-</span><span class="number">123456e6</span><span class="special">)));</span>
 </pre>
 <p>
           </p>
@@ -1008,6 +1162,7 @@
 </p>
 <pre class="programlisting"><span class="identifier">real_parser</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">ts_real_policies</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">ts_real</span><span class="special">;</span>
 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"123,456,789.01"</span><span class="special">,</span> <span class="identifier">ts_real</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"123,456,789.01"</span><span class="special">,</span> <span class="identifier">ts_real</span><span class="special">(</span><span class="number">123456789.01</span><span class="special">));</span>
 </pre>
 <p>
           </p>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Unsigned Integer Parsers (uint_, etc.)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../numeric.html" title="Numeric Parsers">
 <link rel="prev" href="../numeric.html" title="Numeric Parsers">
@@ -28,7 +28,7 @@
           Parsers (<code class="computeroutput"><span class="identifier">uint_</span></code>, etc.)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.numeric.uint.description"></a><h6>
-<a name="id984630"></a>
+<a name="id825795"></a>
             <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.description">Description</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
             is a template class. Template parameters fine tune its behavior.
           </p>
 <a name="spirit.qi.reference.numeric.uint.header"></a><h6>
-<a name="id984675"></a>
+<a name="id825864"></a>
             <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/numeric/uint.hpp&gt;
@@ -52,7 +52,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.numeric.uint.namespace"></a><h6>
-<a name="id984750"></a>
+<a name="id825963"></a>
             <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -65,6 +65,12 @@
 <tbody>
 <tr><td>
                     <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::qi::lit</span></code>
+ </p>
+ </td></tr>
+<tr><td>
+ <p>
                       <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bin</span> <span class="comment">// alias:
                       boost::spirit::qi::bin</span></code>
                     </p>
@@ -121,7 +127,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.numeric.uint.synopsis"></a><h6>
-<a name="id985089"></a>
+<a name="id826412"></a>
             <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
@@ -132,7 +138,7 @@
 <span class="keyword">struct</span> <span class="identifier">uint_parser</span><span class="special">;</span>
 </pre>
 <a name="spirit.qi.reference.numeric.uint.template_parameters"></a><h6>
-<a name="id985185"></a>
+<a name="id826532"></a>
             <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.template_parameters">Template
             parameters</a>
           </h6>
@@ -185,8 +191,8 @@
                   </td>
 <td>
                     <p>
- The radix base. This can be either 2: binary, 8: octal, 10:
- decimal and 16: hexadecimal.
+ The radix base. This can be either 2 for binary, 8 for octal,
+ 10 for decimal and 16 for hexadecimal.
                     </p>
                   </td>
 <td>
@@ -233,7 +239,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.numeric.uint.model_of"></a><h6>
-<a name="id987161"></a>
+<a name="id826730"></a>
             <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -242,20 +248,20 @@
 <div class="variablelist">
 <p class="title"><b>Notation</b></p>
 <dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">NP</span></code></span></dt>
-<dd><p>
- An instance of <code class="computeroutput"><span class="identifier">uint_parser</span></code>
- (type).
- </p></dd>
 <dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
 <dd><p>
                   An object of <code class="computeroutput"><span class="identifier">T</span></code>,
                   the numeric base type.
                 </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">num</span></code></span></dt>
+<dd><p>
+ Numeric literal, any unsigned integer value, or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ Argument</a> that evaluates to a unsigned integer value.
+ </p></dd>
 </dl>
 </div>
 <a name="spirit.qi.reference.numeric.uint.expression_semantics"></a><h6>
-<a name="id987251"></a>
+<a name="id826840"></a>
             <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -284,146 +290,290 @@
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">NP</span><span class="special">()</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ushort_</span>
+<span class="identifier">uint_</span>
+<span class="identifier">ulong_</span>
+<span class="identifier">ulong_long</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Instantiate and (default) construct a <code class="computeroutput"><span class="identifier">uint_parser</span></code>
+ Parse an unsigned integer using the default radix (10).
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">bin</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">num</span>
+<span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">ushort_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">uint_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">ulong_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special">&lt;</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ Match the literal <code class="computeroutput"><span class="identifier">num</span></code>
+ using the default radix (10).
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">oct</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bin</span>
+<span class="identifier">oct</span>
+<span class="identifier">hex</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special">&lt;</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">8</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ Parse an unsigned integer using radix 2 for <code class="computeroutput"><span class="identifier">bin</span></code>,
+ radix 8 for <code class="computeroutput"><span class="identifier">oct</span></code>,
+ and radix 16 for <code class="computeroutput"><span class="identifier">hex</span></code>.
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">hex</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bin</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">oct</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">hex</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special">&lt;</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">16</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ Match the literal <code class="computeroutput"><span class="identifier">num</span></code>
+ using radix 2 for <code class="computeroutput"><span class="identifier">bin</span></code>,
+ radix 8 for <code class="computeroutput"><span class="identifier">oct</span></code>,
+ and radix 16 for <code class="computeroutput"><span class="identifier">hex</span></code>.
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">ushort_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
+<span class="special">&gt;()</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special">&lt;</span><span class="keyword">unsigned</span>
- <span class="keyword">short</span><span class="special">,</span>
- <span class="number">10</span><span class="special">,</span>
- <span class="number">1</span><span class="special">,</span>
- <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ Parse an unsigned integer of type <code class="computeroutput"><span class="identifier">T</span></code>
+ using radix <code class="computeroutput"><span class="identifier">Radix</span></code>,
+ with a minimum of <code class="computeroutput"><span class="identifier">MinDigits</span></code>
+ and a maximum of <code class="computeroutput"><span class="identifier">MaxDigits</span></code>.
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">ulong_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
+<span class="special">&gt;()(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special">&lt;</span><span class="keyword">unsigned</span>
- <span class="keyword">long</span><span class="special">,</span>
- <span class="number">10</span><span class="special">,</span>
- <span class="number">1</span><span class="special">,</span>
- <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ Match the literal <code class="computeroutput"><span class="identifier">num</span></code>
+ of type <code class="computeroutput"><span class="identifier">T</span></code> using
+ radix <code class="computeroutput"><span class="identifier">Radix</span></code>,
+ with a minimum of <code class="computeroutput"><span class="identifier">MinDigits</span></code>
+ and a maximum of <code class="computeroutput"><span class="identifier">MaxDigits</span></code>.
                     </p>
                   </td>
 </tr>
+</tbody>
+</table></div>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ All numeric parsers check for overflow conditions based on the type
+ <code class="computeroutput"><span class="identifier">T</span></code> the corresponding
+ <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special">&lt;&gt;</span></code>
+ has been instantiated with. If the parsed number overflows this type
+ the parsing fails. Please be aware that the overflow check is not based
+ on the type of the supplied attribute but solely depends on the template
+ parameter <code class="computeroutput"><span class="identifier">T</span></code>.
+ </p></td></tr>
+</table></div>
+<a name="spirit.qi.reference.numeric.uint.attributes"></a><h6>
+<a name="id827580"></a>
+ <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.attributes">Attributes</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Attribute
+ </p>
+ </th>
+</tr></thead>
+<tbody>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">uint_</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">num</span>
+<span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special">&lt;</span><span class="keyword">unsigned</span>
- <span class="keyword">int</span><span class="special">,</span>
- <span class="number">10</span><span class="special">,</span>
- <span class="number">1</span><span class="special">,</span>
- <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ <code class="computeroutput"><span class="identifier">unused</span></code>
                     </p>
                   </td>
 </tr>
 <tr>
 <td>
                     <p>
- <code class="computeroutput"><span class="identifier">ulong_long</span></code>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ushort_</span>
+<span class="identifier">ushort_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
                     </p>
                   </td>
 <td>
                     <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special">&lt;</span><span class="keyword">unsigned</span>
- <span class="keyword">long</span> <span class="keyword">long</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">&gt;</span></code>
+ <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code>
                     </p>
                   </td>
 </tr>
-</tbody>
-</table></div>
-<div class="important"><table border="0" summary="Important">
 <tr>
-<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
-<th align="left">Important</th>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_</span>
+<span class="identifier">uint_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">bin</span>
+<span class="identifier">bin</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">oct</span>
+<span class="identifier">oct</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+<span class="identifier">hex</span>
+<span class="identifier">hex</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
 </tr>
-<tr><td align="left" valign="top"><p>
- All numeric parsers check for overflow conditions based on the type
- <code class="computeroutput"><span class="identifier">T</span></code> the corresponding
- <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special">&lt;&gt;</span></code>
- has been instantiated with. If the parsed number overflows this type
- the parsing fails. Please be aware that the overflow check is not based
- on the type of the supplied attribute but solely depends on the template
- parameter <code class="computeroutput"><span class="identifier">T</span></code>.
- </p></td></tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ulong_</span>
+<span class="identifier">ulong_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ulong_long</span>
+<span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ulong_long_type</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
+<span class="special">&gt;()</span>
+<span class="identifier">uint_parser</span><span class="special">&lt;</span>
+ <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
+<span class="special">&gt;()(</span><span class="identifier">num</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
 </table></div>
-<a name="spirit.qi.reference.numeric.uint.attributes"></a><h6>
-<a name="id987910"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.attributes">Attributes</a>
- </h6>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">T</span></code>, The numeric base
- type of the numeric parser.
- </p></blockquote></div>
 <a name="spirit.qi.reference.numeric.uint.complexity"></a><h6>
-<a name="id987937"></a>
+<a name="id828152"></a>
             <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of digits being parsed.
             </p></blockquote></div>
 <a name="spirit.qi.reference.numeric.uint.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_"></a><h6>
-<a name="id987958"></a>
+<a name="id828179"></a>
             <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_">Minimum
             Expression Requirements for <code class="computeroutput"><span class="identifier">T</span></code></a>
           </h6>
@@ -571,7 +721,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.numeric.uint.example"></a><h6>
-<a name="id988484"></a>
+<a name="id828809"></a>
             <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">
@@ -590,7 +740,9 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">uint_</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">val</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">lit</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">uint_</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">uint_parser</span><span class="special">;</span>
 </pre>
 <p>
@@ -601,7 +753,15 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">uint_</span><span class="special">);</span>
+<pre class="programlisting"><span class="comment">// unsigned int
+</span><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">uint_</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">uint_</span><span class="special">(</span><span class="number">12345</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">uint_</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="number">12345</span><span class="special">)));</span>
+
+<span class="comment">// literals
+</span><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="number">12345</span><span class="special">);</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="number">12345</span><span class="special">));</span>
+<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="number">12345</span><span class="special">)));</span>
 </pre>
 <p>
           </p>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Operators</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="numeric/boolean.html" title="Boolean Parser (bool_)">
@@ -79,7 +79,7 @@
           (<code class="computeroutput"><span class="special">||</span></code>).
         </p>
 <a name="spirit.qi.reference.operator.module_header"></a><h6>
-<a name="id1007160"></a>
+<a name="id844606"></a>
           <a class="link" href="operator.html#spirit.qi.reference.operator.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Alternative Parser (a | b)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="../operator.html" title="Parser Operators">
@@ -29,7 +29,7 @@
           <span class="identifier">b</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.alternative.description"></a><h6>
-<a name="id1007262"></a>
+<a name="id844741"></a>
             <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.description">Description</a>
           </h6>
 <p>
@@ -60,7 +60,7 @@
             to put the (expected) most common choice first for maximum efficiency.
           </p>
 <a name="spirit.qi.reference.operator.alternative.header"></a><h6>
-<a name="id1007426"></a>
+<a name="id844955"></a>
             <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/alternative.hpp&gt;
@@ -70,7 +70,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.alternative.model_of"></a><h6>
-<a name="id1007501"></a>
+<a name="id845054"></a>
             <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.model_of">Model
             of</a>
           </h6>
@@ -87,7 +87,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.alternative.expression_semantics"></a><h6>
-<a name="id1007576"></a>
+<a name="id845148"></a>
             <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -128,7 +128,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.alternative.attributes"></a><h6>
-<a name="id1007689"></a>
+<a name="id845281"></a>
             <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.attributes">Attributes</a>
           </h6>
 <p>
@@ -187,7 +187,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.operator.alternative.complexity"></a><h6>
-<a name="id1008274"></a>
+<a name="id845972"></a>
             <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -196,7 +196,7 @@
               parser itself is O(N), where N is the number of alternatives.
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.alternative.example"></a><h6>
-<a name="id1008294"></a>
+<a name="id846001"></a>
             <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>And-Predicate Parser (&amp;a)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="alternative.html" title="Alternative Parser (a | b)">
@@ -28,7 +28,7 @@
           Parser (<code class="computeroutput"><span class="special">&amp;</span><span class="identifier">a</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.and_predicate.description"></a><h6>
-<a name="id1009640"></a>
+<a name="id846875"></a>
             <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             if its predicate matches.
           </p>
 <a name="spirit.qi.reference.operator.and_predicate.header"></a><h6>
-<a name="id1009681"></a>
+<a name="id846935"></a>
             <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/and_predicate.hpp&gt;
@@ -51,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.and_predicate.model_of"></a><h6>
-<a name="id1009755"></a>
+<a name="id847034"></a>
             <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.model_of">Model
             of</a>
           </h6>
@@ -68,7 +68,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.and_predicate.expression_semantics"></a><h6>
-<a name="id1009824"></a>
+<a name="id847119"></a>
             <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -108,7 +108,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.and_predicate.attributes"></a><h6>
-<a name="id1009923"></a>
+<a name="id847236"></a>
             <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.attributes">Attributes</a>
           </h6>
 <p>
@@ -146,14 +146,14 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.and_predicate.complexity"></a><h6>
-<a name="id1010018"></a>
+<a name="id847343"></a>
             <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               The complexity is defined by the complexity of the predicate, <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.and_predicate.example"></a><h6>
-<a name="id1010046"></a>
+<a name="id847380"></a>
             <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Difference Parser (a - b)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="and_predicate.html" title="And-Predicate Parser (&amp;a)">
@@ -29,17 +29,17 @@
           <span class="identifier">b</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.difference.description"></a><h6>
-<a name="id1010211"></a>
+<a name="id847587"></a>
             <a class="link" href="difference.html#spirit.qi.reference.operator.difference.description">Description</a>
           </h6>
 <p>
             The difference operator, <code class="computeroutput"><span class="identifier">a</span>
             <span class="special">-</span> <span class="identifier">b</span></code>,
             is a binary operator that matches the first (LHS) operand but not the
- second (RHS). <sup>[<a name="id1010240" href="#ftn.id1010240" class="footnote">8</a>]</sup>
+ second (RHS). <sup>[<a name="id847624" href="#ftn.id847624" class="footnote">8</a>]</sup>
           </p>
 <a name="spirit.qi.reference.operator.difference.header"></a><h6>
-<a name="id1010280"></a>
+<a name="id847677"></a>
             <a class="link" href="difference.html#spirit.qi.reference.operator.difference.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/difference.hpp&gt;
@@ -49,7 +49,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.difference.model_of"></a><h6>
-<a name="id1010354"></a>
+<a name="id847776"></a>
             <a class="link" href="difference.html#spirit.qi.reference.operator.difference.model_of">Model
             of</a>
           </h6>
@@ -66,7 +66,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.difference.expression_semantics"></a><h6>
-<a name="id1010430"></a>
+<a name="id847871"></a>
             <a class="link" href="difference.html#spirit.qi.reference.operator.difference.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -107,7 +107,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.difference.attributes"></a><h6>
-<a name="id1010544"></a>
+<a name="id848003"></a>
             <a class="link" href="difference.html#spirit.qi.reference.operator.difference.attributes">Attributes</a>
           </h6>
 <p>
@@ -150,7 +150,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.difference.complexity"></a><h6>
-<a name="id1010762"></a>
+<a name="id848253"></a>
             <a class="link" href="difference.html#spirit.qi.reference.operator.difference.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -158,7 +158,7 @@
               complexities of both operands.
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.difference.example"></a><h6>
-<a name="id1010783"></a>
+<a name="id848281"></a>
             <a class="link" href="difference.html#spirit.qi.reference.operator.difference.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">
@@ -192,7 +192,7 @@
           </p>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id1010240" href="#id1010240" class="para">8</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id847624" href="#id847624" class="para">8</a>] </sup>
               Unlike classic Spirit, with Spirit2, the expression will always fail
               if the RHS is a successful match regardless if the RHS matches less
               characters. For example, the rule <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"policeman"</span><span class="special">)</span> <span class="special">-</span> <span class="string">"police"</span></code> will always fail to

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Expectation Parser (a &gt; b)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="difference.html" title="Difference Parser (a - b)">
@@ -29,7 +29,7 @@
           <span class="identifier">b</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.expect.description"></a><h6>
-<a name="id1010952"></a>
+<a name="id848492"></a>
             <a class="link" href="expect.html#spirit.qi.reference.operator.expect.description">Description</a>
           </h6>
 <p>
@@ -49,7 +49,7 @@
             (all operands except the first) fail to match.
           </p>
 <a name="spirit.qi.reference.operator.expect.header"></a><h6>
-<a name="id1011078"></a>
+<a name="id848666"></a>
             <a class="link" href="expect.html#spirit.qi.reference.operator.expect.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/expect.hpp&gt;
@@ -59,7 +59,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.expect.model_of"></a><h6>
-<a name="id1011152"></a>
+<a name="id848765"></a>
             <a class="link" href="expect.html#spirit.qi.reference.operator.expect.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -79,7 +79,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.expect.expectation_failure"></a><h6>
-<a name="id1011254"></a>
+<a name="id848894"></a>
             <a class="link" href="expect.html#spirit.qi.reference.operator.expect.expectation_failure">Expectation
             Failure</a>
           </h6>
@@ -95,7 +95,7 @@
 </span><span class="special">};</span>
 </pre>
 <a name="spirit.qi.reference.operator.expect.expression_semantics"></a><h6>
-<a name="id1011409"></a>
+<a name="id849085"></a>
             <a class="link" href="expect.html#spirit.qi.reference.operator.expect.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -136,7 +136,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.expect.attributes"></a><h6>
-<a name="id1012594"></a>
+<a name="id849262"></a>
             <a class="link" href="expect.html#spirit.qi.reference.operator.expect.attributes">Attributes</a>
           </h6>
 <p>
@@ -186,7 +186,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.expect.complexity"></a><h6>
-<a name="id1013278"></a>
+<a name="id850071"></a>
             <a class="link" href="expect.html#spirit.qi.reference.operator.expect.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -195,7 +195,7 @@
               operator itself is O(N), where N is the number of elements in the sequence.
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.expect.example"></a><h6>
-<a name="id1013298"></a>
+<a name="id850100"></a>
             <a class="link" href="expect.html#spirit.qi.reference.operator.expect.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Kleene Parser (*a)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="expect.html" title="Expectation Parser (a &gt; b)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.kleene.description"></a><h6>
-<a name="id1013754"></a>
+<a name="id850672"></a>
             <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             is a unary operator that matches its operand zero or more times.
           </p>
 <a name="spirit.qi.reference.operator.kleene.header"></a><h6>
-<a name="id1013782"></a>
+<a name="id850711"></a>
             <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/kleene.hpp&gt;
@@ -46,7 +46,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.kleene.model_of"></a><h6>
-<a name="id1013856"></a>
+<a name="id850809"></a>
             <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -62,7 +62,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.kleene.expression_semantics"></a><h6>
-<a name="id1013924"></a>
+<a name="id850894"></a>
             <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -102,7 +102,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.kleene.attributes"></a><h6>
-<a name="id1014024"></a>
+<a name="id851009"></a>
             <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.attributes">Attributes</a>
           </h6>
 <p>
@@ -144,7 +144,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.kleene.complexity"></a><h6>
-<a name="id1014194"></a>
+<a name="id851205"></a>
             <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -154,7 +154,7 @@
               star itself is O(N), where N is the number successful repetitions.
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.kleene.example"></a><h6>
-<a name="id1014222"></a>
+<a name="id851244"></a>
             <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/list.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/list.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/list.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>List Parser (a % b)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="kleene.html" title="Kleene Parser (*a)">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.operator.list"></a><a class="link" href="list.html" title="List Parser (a % b)">List Parser (<code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span> <span class="identifier">b</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.list.description"></a><h6>
-<a name="id1014590"></a>
+<a name="id851695"></a>
             <a class="link" href="list.html#spirit.qi.reference.operator.list.description">Description</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
             <span class="special">&gt;&gt;</span> <span class="identifier">a</span><span class="special">)</span></code>.
           </p>
 <a name="spirit.qi.reference.operator.list.header"></a><h6>
-<a name="id1014672"></a>
+<a name="id851803"></a>
             <a class="link" href="list.html#spirit.qi.reference.operator.list.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/list.hpp&gt;
@@ -50,7 +50,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.list.model_of"></a><h6>
-<a name="id1015863"></a>
+<a name="id851903"></a>
             <a class="link" href="list.html#spirit.qi.reference.operator.list.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -66,7 +66,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.list.expression_semantics"></a><h6>
-<a name="id1015936"></a>
+<a name="id851997"></a>
             <a class="link" href="list.html#spirit.qi.reference.operator.list.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -110,7 +110,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.list.attributes"></a><h6>
-<a name="id1016080"></a>
+<a name="id852171"></a>
             <a class="link" href="list.html#spirit.qi.reference.operator.list.attributes">Attributes</a>
           </h6>
 <p>
@@ -153,7 +153,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.list.complexity"></a><h6>
-<a name="id1016309"></a>
+<a name="id852433"></a>
             <a class="link" href="list.html#spirit.qi.reference.operator.list.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -163,7 +163,7 @@
               O(N), where N is the number successful repetitions.
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.list.example"></a><h6>
-<a name="id1016337"></a>
+<a name="id852473"></a>
             <a class="link" href="list.html#spirit.qi.reference.operator.list.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Not-Predicate Parser (!a)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="list.html" title="List Parser (a % b)">
@@ -28,7 +28,7 @@
           Parser (<code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.not_predicate.description"></a><h6>
-<a name="id1016686"></a>
+<a name="id852902"></a>
             <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             if its predicate fails to match.
           </p>
 <a name="spirit.qi.reference.operator.not_predicate.header"></a><h6>
-<a name="id1016727"></a>
+<a name="id852962"></a>
             <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/not_predicate.hpp&gt;
@@ -51,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.not_predicate.model_of"></a><h6>
-<a name="id1016801"></a>
+<a name="id853061"></a>
             <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.model_of">Model
             of</a>
           </h6>
@@ -68,7 +68,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.not_predicate.expression_semantics"></a><h6>
-<a name="id1016869"></a>
+<a name="id853146"></a>
             <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -108,7 +108,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.not_predicate.attributes"></a><h6>
-<a name="id1016969"></a>
+<a name="id853262"></a>
             <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.attributes">Attributes</a>
           </h6>
 <p>
@@ -146,14 +146,14 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.not_predicate.complexity"></a><h6>
-<a name="id1017064"></a>
+<a name="id853368"></a>
             <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               The complexity is defined by the complexity of the predicate, <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.not_predicate.example"></a><h6>
-<a name="id1017091"></a>
+<a name="id853405"></a>
             <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Optional Parser (-a)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="not_predicate.html" title="Not-Predicate Parser (!a)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.optional.description"></a><h6>
-<a name="id1017637"></a>
+<a name="id854080"></a>
             <a class="link" href="optional.html#spirit.qi.reference.operator.optional.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             its operand zero or one time.
           </p>
 <a name="spirit.qi.reference.operator.optional.header"></a><h6>
-<a name="id1017665"></a>
+<a name="id854118"></a>
             <a class="link" href="optional.html#spirit.qi.reference.operator.optional.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/optional.hpp&gt;
@@ -46,7 +46,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.optional.model_of"></a><h6>
-<a name="id1017739"></a>
+<a name="id854218"></a>
             <a class="link" href="optional.html#spirit.qi.reference.operator.optional.model_of">Model
             of</a>
           </h6>
@@ -63,7 +63,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.optional.expression_semantics"></a><h6>
-<a name="id1017808"></a>
+<a name="id854303"></a>
             <a class="link" href="optional.html#spirit.qi.reference.operator.optional.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -103,7 +103,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.optional.attributes"></a><h6>
-<a name="id1017907"></a>
+<a name="id854418"></a>
             <a class="link" href="optional.html#spirit.qi.reference.operator.optional.attributes">Attributes</a>
           </h6>
 <p>
@@ -145,14 +145,14 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.optional.complexity"></a><h6>
-<a name="id1018078"></a>
+<a name="id854614"></a>
             <a class="link" href="optional.html#spirit.qi.reference.operator.optional.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               The complexity is defined by the complexity of the operand, <code class="computeroutput"><span class="identifier">a</span></code>
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.optional.example"></a><h6>
-<a name="id1018106"></a>
+<a name="id854652"></a>
             <a class="link" href="optional.html#spirit.qi.reference.operator.optional.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">
@@ -180,7 +180,7 @@
 <p>
           </p>
 <p>
- Parse a person info with name (in quotes) optional age <sup>[<a name="id1018320" href="#ftn.id1018320" class="footnote">9</a>]</sup> and optional sex, all separated by comma.
+ Parse a person info with name (in quotes) optional age <sup>[<a name="id854916" href="#ftn.id854916" class="footnote">9</a>]</sup> and optional sex, all separated by comma.
           </p>
 <p>
             
@@ -206,7 +206,7 @@
           </p>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id1018320" href="#id1018320" class="para">9</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id854916" href="#id854916" class="para">9</a>] </sup>
               James Bond is shy about his age :-)
             </p></div>
 </div>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Permutation Parser (a ^ b)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="optional.html" title="Optional Parser (-a)">
@@ -29,7 +29,7 @@
           <span class="identifier">b</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.permutation.description"></a><h6>
-<a name="id1018843"></a>
+<a name="id855553"></a>
             <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.description">Description</a>
           </h6>
 <p>
@@ -57,7 +57,7 @@
 <pre class="programlisting"><span class="string">"a"</span><span class="special">,</span> <span class="string">"ab"</span><span class="special">,</span> <span class="string">"abc"</span><span class="special">,</span> <span class="string">"cba"</span><span class="special">,</span> <span class="string">"bca"</span> <span class="special">...</span> <span class="identifier">etc</span><span class="special">.</span>
 </pre>
 <a name="spirit.qi.reference.operator.permutation.header"></a><h6>
-<a name="id1019023"></a>
+<a name="id855779"></a>
             <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/permutation.hpp&gt;
@@ -67,7 +67,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.permutation.model_of"></a><h6>
-<a name="id1019097"></a>
+<a name="id855878"></a>
             <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.model_of">Model
             of</a>
           </h6>
@@ -84,7 +84,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.permutation.expression_semantics"></a><h6>
-<a name="id1019173"></a>
+<a name="id855972"></a>
             <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -127,7 +127,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.permutation.attributes"></a><h6>
-<a name="id1019286"></a>
+<a name="id856106"></a>
             <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.attributes">Attributes</a>
           </h6>
 <p>
@@ -172,7 +172,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.permutation.complexity"></a><h6>
-<a name="id1019686"></a>
+<a name="id856577"></a>
             <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -182,7 +182,7 @@
               is the number of elements.
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.permutation.example"></a><h6>
-<a name="id1019707"></a>
+<a name="id672395"></a>
             <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Plus Parser (+a)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="permutation.html" title="Permutation Parser (a ^ b)">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.operator.plus"></a><a class="link" href="plus.html" title="Plus Parser (+a)">Plus Parser (<code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.plus.description"></a><h6>
-<a name="id1019877"></a>
+<a name="id856887"></a>
             <a class="link" href="plus.html#spirit.qi.reference.operator.plus.description">Description</a>
           </h6>
 <p>
@@ -35,7 +35,7 @@
             is a unary operator that matches its operand one or more times.
           </p>
 <a name="spirit.qi.reference.operator.plus.header"></a><h6>
-<a name="id1019905"></a>
+<a name="id856926"></a>
             <a class="link" href="plus.html#spirit.qi.reference.operator.plus.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/plus.hpp&gt;
@@ -45,7 +45,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.plus.model_of"></a><h6>
-<a name="id1019979"></a>
+<a name="id857024"></a>
             <a class="link" href="plus.html#spirit.qi.reference.operator.plus.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -61,7 +61,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.plus.expression_semantics"></a><h6>
-<a name="id1020045"></a>
+<a name="id857108"></a>
             <a class="link" href="plus.html#spirit.qi.reference.operator.plus.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -101,7 +101,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.plus.attributes"></a><h6>
-<a name="id1020142"></a>
+<a name="id857223"></a>
             <a class="link" href="plus.html#spirit.qi.reference.operator.plus.attributes">Attributes</a>
           </h6>
 <p>
@@ -143,7 +143,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.plus.complexity"></a><h6>
-<a name="id1021406"></a>
+<a name="id857420"></a>
             <a class="link" href="plus.html#spirit.qi.reference.operator.plus.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -153,7 +153,7 @@
               O(N), where N is the number successful repetitions.
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.plus.example"></a><h6>
-<a name="id1021433"></a>
+<a name="id857460"></a>
             <a class="link" href="plus.html#spirit.qi.reference.operator.plus.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Sequence Parser (a &gt;&gt; b)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="plus.html" title="Plus Parser (+a)">
@@ -29,7 +29,7 @@
           <span class="identifier">b</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.sequence.description"></a><h6>
-<a name="id1021770"></a>
+<a name="id857878"></a>
             <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.description">Description</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
 <pre class="programlisting"><span class="identifier">a</span> <span class="special">&gt;&gt;</span> <span class="identifier">b</span> <span class="special">&gt;&gt;</span> <span class="special">...</span>
 </pre>
 <a name="spirit.qi.reference.operator.sequence.header"></a><h6>
-<a name="id1021846"></a>
+<a name="id857977"></a>
             <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/sequence.hpp&gt;
@@ -50,7 +50,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.sequence.model_of"></a><h6>
-<a name="id1021920"></a>
+<a name="id858076"></a>
             <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.model_of">Model
             of</a>
           </h6>
@@ -67,7 +67,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.sequence.expression_semantics"></a><h6>
-<a name="id1021996"></a>
+<a name="id858171"></a>
             <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -108,7 +108,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.sequence.attributes"></a><h6>
-<a name="id1022109"></a>
+<a name="id858304"></a>
             <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.attributes">Attributes</a>
           </h6>
 <p>
@@ -158,7 +158,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.sequence.complexity"></a><h6>
-<a name="id1022793"></a>
+<a name="id859111"></a>
             <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -167,7 +167,7 @@
               itself is O(N), where N is the number of elements in the sequence.
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.sequence.example"></a><h6>
-<a name="id1022813"></a>
+<a name="id859140"></a>
             <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Sequential Or Parser (a || b)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../operator.html" title="Parser Operators">
 <link rel="prev" href="sequence.html" title="Sequence Parser (a &gt;&gt; b)">
@@ -29,7 +29,7 @@
           <span class="identifier">b</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.operator.sequential_or.description"></a><h6>
-<a name="id1024638"></a>
+<a name="id860038"></a>
             <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.description">Description</a>
           </h6>
 <p>
@@ -45,7 +45,7 @@
 <pre class="programlisting"><span class="identifier">a</span> <span class="special">||</span> <span class="identifier">b</span> <span class="special">||</span> <span class="special">...</span>
 </pre>
 <a name="spirit.qi.reference.operator.sequential_or.header"></a><h6>
-<a name="id1024774"></a>
+<a name="id860215"></a>
             <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/operator/sequential_or.hpp&gt;
@@ -55,7 +55,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.operator.sequential_or.model_of"></a><h6>
-<a name="id1024848"></a>
+<a name="id860314"></a>
             <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.model_of">Model
             of</a>
           </h6>
@@ -72,7 +72,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.operator.sequential_or.expression_semantics"></a><h6>
-<a name="id1024924"></a>
+<a name="id860409"></a>
             <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -115,7 +115,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.operator.sequential_or.attributes"></a><h6>
-<a name="id1025066"></a>
+<a name="id860579"></a>
             <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.attributes">Attributes</a>
           </h6>
 <p>
@@ -186,7 +186,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.qi.reference.operator.sequential_or.complexity"></a><h6>
-<a name="id1025695"></a>
+<a name="id861339"></a>
             <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -195,7 +195,7 @@
               itself is O(N), where N is the number of elements in the sequence.
             </p></blockquote></div>
 <a name="spirit.qi.reference.operator.sequential_or.example"></a><h6>
-<a name="id1025716"></a>
+<a name="id861368"></a>
             <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/create_parser.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/create_parser.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/create_parser.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>API for Automatic Parser Creation</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../parse_api.html" title="Parser API">
 <link rel="prev" href="stream_api.html" title="Stream Based Parser API">
@@ -28,7 +28,7 @@
           for Automatic Parser Creation</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.parse_api.create_parser.description"></a><h6>
-<a name="id935164"></a>
+<a name="id780738"></a>
             <a class="link" href="create_parser.html#spirit.qi.reference.parse_api.create_parser.description">Description</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             parser can be utilized to match input for the provided attribute.
           </p>
 <a name="spirit.qi.reference.parse_api.create_parser.header"></a><h6>
-<a name="id935181"></a>
+<a name="id780764"></a>
             <a class="link" href="create_parser.html#spirit.qi.reference.parse_api.create_parser.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/auto.hpp&gt;
@@ -49,7 +49,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.parse_api.create_parser.namespace"></a><h6>
-<a name="id935256"></a>
+<a name="id780863"></a>
             <a class="link" href="create_parser.html#spirit.qi.reference.parse_api.create_parser.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -73,7 +73,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parse_api.create_parser.synopsis"></a><h6>
-<a name="id935941"></a>
+<a name="id781004"></a>
             <a class="link" href="create_parser.html#spirit.qi.reference.parse_api.create_parser.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">qi</span>
@@ -281,7 +281,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.parse_api.create_parser.template_parameters"></a><h6>
-<a name="id936862"></a>
+<a name="id782134"></a>
             <a class="link" href="create_parser.html#spirit.qi.reference.parse_api.create_parser.template_parameters">Template
             parameters</a>
           </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/iterator_api.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/iterator_api.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/iterator_api.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Iterator Based Parser API</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../parse_api.html" title="Parser API">
 <link rel="prev" href="../parse_api.html" title="Parser API">
@@ -28,7 +28,7 @@
           Based Parser API</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.parse_api.iterator_api.description"></a><h6>
-<a name="id930012"></a>
+<a name="id775787"></a>
             <a class="link" href="iterator_api.html#spirit.qi.reference.parse_api.iterator_api.description">Description</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
             successful parse.
           </p>
 <a name="spirit.qi.reference.parse_api.iterator_api.header"></a><h6>
-<a name="id930043"></a>
+<a name="id775835"></a>
             <a class="link" href="iterator_api.html#spirit.qi.reference.parse_api.iterator_api.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/parse.hpp&gt;
@@ -70,7 +70,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.parse_api.iterator_api.namespace"></a><h6>
-<a name="id930239"></a>
+<a name="id776092"></a>
             <a class="link" href="iterator_api.html#spirit.qi.reference.parse_api.iterator_api.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -104,7 +104,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parse_api.iterator_api.synopsis"></a><h6>
-<a name="id930452"></a>
+<a name="id776343"></a>
             <a class="link" href="iterator_api.html#spirit.qi.reference.parse_api.iterator_api.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">qi</span>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/stream_api.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/stream_api.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/parse_api/stream_api.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Stream Based Parser API</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../parse_api.html" title="Parser API">
 <link rel="prev" href="iterator_api.html" title="Iterator Based Parser API">
@@ -28,7 +28,7 @@
           Based Parser API</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.parse_api.stream_api.description"></a><h6>
-<a name="id933264"></a>
+<a name="id778415"></a>
             <a class="link" href="stream_api.html#spirit.qi.reference.parse_api.stream_api.description">Description</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
             successful parse.
           </p>
 <a name="spirit.qi.reference.parse_api.stream_api.header"></a><h6>
-<a name="id933306"></a>
+<a name="id778472"></a>
             <a class="link" href="stream_api.html#spirit.qi.reference.parse_api.stream_api.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/stream/match_manip.hpp&gt;
@@ -72,7 +72,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.parse_api.stream_api.namespace"></a><h6>
-<a name="id933501"></a>
+<a name="id778728"></a>
             <a class="link" href="stream_api.html#spirit.qi.reference.parse_api.stream_api.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -106,7 +106,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parse_api.stream_api.synopsis"></a><h6>
-<a name="id933715"></a>
+<a name="id778981"></a>
             <a class="link" href="stream_api.html#spirit.qi.reference.parse_api.stream_api.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">qi</span>
@@ -204,7 +204,7 @@
             to the corresponding argument.
           </p>
 <a name="spirit.qi.reference.parse_api.stream_api.template_parameters"></a><h6>
-<a name="id934987"></a>
+<a name="id780538"></a>
             <a class="link" href="stream_api.html#spirit.qi.reference.parse_api.stream_api.template_parameters">Template
             parameters</a>
           </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>BinaryParser</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../parser_concepts.html" title="Parser Concepts">
 <link rel="prev" href="unaryparser.html" title="UnaryParser">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.parser_concepts.binaryparser"></a><a class="link" href="binaryparser.html" title="BinaryParser">BinaryParser</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.parser_concepts.binaryparser.description"></a><h6>
-<a name="id921366"></a>
+<a name="id768044"></a>
             <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             following the Composite Design Pattern.
           </p>
 <a name="spirit.qi.reference.parser_concepts.binaryparser.refinement_of"></a><h6>
-<a name="id921415"></a>
+<a name="id768109"></a>
             <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.refinement_of">Refinement
             of</a>
           </h6>
@@ -58,7 +58,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.parser_concepts.binaryparser.valid_expressions"></a><h6>
-<a name="id921493"></a>
+<a name="id768200"></a>
             <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -127,7 +127,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.binaryparser.type_expressions"></a><h6>
-<a name="id921662"></a>
+<a name="id768395"></a>
             <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.type_expressions">Type
             Expressions</a>
           </h6>
@@ -192,7 +192,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.binaryparser.invariants"></a><h6>
-<a name="id921867"></a>
+<a name="id768631"></a>
             <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.invariants">Invariants</a>
           </h6>
 <p>
@@ -208,7 +208,7 @@
               </li>
 </ul></div>
 <a name="spirit.qi.reference.parser_concepts.binaryparser.models"></a><h6>
-<a name="id922012"></a>
+<a name="id768814"></a>
             <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.models">Models</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>NaryParser</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../parser_concepts.html" title="Parser Concepts">
 <link rel="prev" href="binaryparser.html" title="BinaryParser">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.parser_concepts.naryparser"></a><a class="link" href="naryparser.html" title="NaryParser">NaryParser</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.parser_concepts.naryparser.description"></a><h6>
-<a name="id922066"></a>
+<a name="id768883"></a>
             <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             Design Pattern.
           </p>
 <a name="spirit.qi.reference.parser_concepts.naryparser.refinement_of"></a><h6>
-<a name="id922101"></a>
+<a name="id768926"></a>
             <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.refinement_of">Refinement
             of</a>
           </h6>
@@ -58,7 +58,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.parser_concepts.naryparser.valid_expressions"></a><h6>
-<a name="id922179"></a>
+<a name="id769017"></a>
             <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -109,7 +109,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.naryparser.type_expressions"></a><h6>
-<a name="id922308"></a>
+<a name="id769162"></a>
             <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.type_expressions">Type
             Expressions</a>
           </h6>
@@ -162,7 +162,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.naryparser.invariants"></a><h6>
-<a name="id922483"></a>
+<a name="id769362"></a>
             <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.invariants">Invariants</a>
           </h6>
 <p>
@@ -174,7 +174,7 @@
                 <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">&gt;::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
               </li></ul></div>
 <a name="spirit.qi.reference.parser_concepts.naryparser.models"></a><h6>
-<a name="id922570"></a>
+<a name="id769474"></a>
             <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.models">Models</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/nonterminal.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/nonterminal.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/nonterminal.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Nonterminal</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../parser_concepts.html" title="Parser Concepts">
 <link rel="prev" href="naryparser.html" title="NaryParser">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.parser_concepts.nonterminal"></a><a class="link" href="nonterminal.html" title="Nonterminal">Nonterminal</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.parser_concepts.nonterminal.description"></a><h6>
-<a name="id922662"></a>
+<a name="id769587"></a>
             <a class="link" href="nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal.description">Description</a>
           </h6>
 <p>
@@ -38,7 +38,7 @@
             in recursive descent parsing.
           </p>
 <a name="spirit.qi.reference.parser_concepts.nonterminal.refinement_of"></a><h6>
-<a name="id922688"></a>
+<a name="id769621"></a>
             <a class="link" href="nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal.refinement_of">Refinement
             of</a>
           </h6>
@@ -46,7 +46,7 @@
               <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
             </p></blockquote></div>
 <a name="spirit.qi.reference.parser_concepts.nonterminal.signature"></a><h6>
-<a name="id922723"></a>
+<a name="id769662"></a>
             <a class="link" href="nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal.signature">Signature</a>
           </h6>
 <p>
@@ -64,7 +64,7 @@
             inherited attributes.
           </p>
 <a name="spirit.qi.reference.parser_concepts.nonterminal.attributes"></a><h6>
-<a name="id922822"></a>
+<a name="id769786"></a>
             <a class="link" href="nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal.attributes">Attributes</a>
           </h6>
 <p>
@@ -77,7 +77,7 @@
 <pre class="programlisting"><span class="identifier">r</span><span class="special">(</span><span class="identifier">expr</span><span class="special">)</span> <span class="comment">// Evaluate expr at parse time and pass the result to the Nonterminal r
 </span></pre>
 <a name="spirit.qi.reference.parser_concepts.nonterminal._code__phrase_role__identifier___val__phrase___code_"></a><h6>
-<a name="id922869"></a>
+<a name="id769851"></a>
             <a class="link" href="nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal._code__phrase_role__identifier___val__phrase___code_"><code class="computeroutput"><span class="identifier">_val</span></code></a>
           </h6>
 <p>
@@ -88,7 +88,7 @@
             like a mutable reference to the Nonterminal's attribute.
           </p>
 <a name="spirit.qi.reference.parser_concepts.nonterminal._code__phrase_role__identifier___r1__phrase___code_______code__phrase_role__identifier__r10__phrase___code_"></a><h6>
-<a name="id922936"></a>
+<a name="id769948"></a>
             <a class="link" href="nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal._code__phrase_role__identifier___r1__phrase___code_______code__phrase_role__identifier__r10__phrase___code_"><code class="computeroutput"><span class="identifier">_r1</span></code> ... <code class="computeroutput"><span class="identifier">r10</span></code></a>
           </h6>
 <p>
@@ -98,7 +98,7 @@
             refer to the Nonterminal's inherited attributes.
           </p>
 <a name="spirit.qi.reference.parser_concepts.nonterminal.locals"></a><h6>
-<a name="id923018"></a>
+<a name="id770060"></a>
             <a class="link" href="nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal.locals">Locals</a>
           </h6>
 <p>
@@ -169,7 +169,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.parser_concepts.nonterminal.valid_expressions"></a><h6>
-<a name="id923696"></a>
+<a name="id770693"></a>
             <a class="link" href="nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -293,7 +293,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.nonterminal.type_expressions"></a><h6>
-<a name="id924062"></a>
+<a name="id771116"></a>
             <a class="link" href="nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal.type_expressions">Type
             Expressions</a>
           </h6>
@@ -348,7 +348,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.nonterminal.models"></a><h6>
-<a name="id924202"></a>
+<a name="id771276"></a>
             <a class="link" href="nonterminal.html#spirit.qi.reference.parser_concepts.nonterminal.models">Models</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../parser_concepts.html" title="Parser Concepts">
 <link rel="prev" href="../parser_concepts.html" title="Parser Concepts">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.parser_concepts.parser"></a><a class="link" href="parser.html" title="Parser">Parser</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.parser_concepts.parser.description"></a><h6>
-<a name="id919212"></a>
+<a name="id765593"></a>
             <a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.description">Description</a>
           </h6>
 <p>
@@ -80,7 +80,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.parser_concepts.parser.valid_expressions"></a><h6>
-<a name="id919490"></a>
+<a name="id765939"></a>
             <a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -160,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.parser.type_expressions"></a><h6>
-<a name="id919767"></a>
+<a name="id766265"></a>
             <a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.type_expressions">Type
             Expressions</a>
           </h6>
@@ -213,7 +213,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.parser.postcondition"></a><h6>
-<a name="id919970"></a>
+<a name="id766501"></a>
             <a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.postcondition">Postcondition</a>
           </h6>
 <p>
@@ -247,7 +247,7 @@
               </li>
 </ul></div>
 <a name="spirit.qi.reference.parser_concepts.parser.models"></a><h6>
-<a name="id920115"></a>
+<a name="id766689"></a>
             <a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.models">Models</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>PrimitiveParser</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../parser_concepts.html" title="Parser Concepts">
 <link rel="prev" href="parser.html" title="Parser">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.parser_concepts.primitiveparser"></a><a class="link" href="primitiveparser.html" title="PrimitiveParser">PrimitiveParser</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.parser_concepts.primitiveparser.description"></a><h6>
-<a name="id920150"></a>
+<a name="id766734"></a>
             <a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.description">Description</a>
           </h6>
 <p>
@@ -35,7 +35,7 @@
             that the client uses to build more complex parsers.
           </p>
 <a name="spirit.qi.reference.parser_concepts.primitiveparser.refinement_of"></a><h6>
-<a name="id920172"></a>
+<a name="id766763"></a>
             <a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.refinement_of">Refinement
             of</a>
           </h6>
@@ -43,7 +43,7 @@
               <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
             </p></blockquote></div>
 <a name="spirit.qi.reference.parser_concepts.primitiveparser.pre_skip"></a><h6>
-<a name="id920205"></a>
+<a name="id766805"></a>
             <a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.pre_skip">Pre-skip</a>
           </h6>
 <p>
@@ -57,7 +57,7 @@
 <pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip_over</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">skip</span><span class="special">);</span>
 </pre>
 <a name="spirit.qi.reference.parser_concepts.primitiveparser.type_expressions"></a><h6>
-<a name="id920296"></a>
+<a name="id766924"></a>
             <a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.type_expressions">Type
             Expressions</a>
           </h6>
@@ -96,7 +96,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.primitiveparser.models"></a><h6>
-<a name="id920436"></a>
+<a name="id767089"></a>
             <a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.models">Models</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>UnaryParser</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../parser_concepts.html" title="Parser Concepts">
 <link rel="prev" href="primitiveparser.html" title="PrimitiveParser">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.parser_concepts.unaryparser"></a><a class="link" href="unaryparser.html" title="UnaryParser">UnaryParser</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.parser_concepts.unaryparser.description"></a><h6>
-<a name="id920583"></a>
+<a name="id767271"></a>
             <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             the Delegate Design Pattern.
           </p>
 <a name="spirit.qi.reference.parser_concepts.unaryparser.refinement_of"></a><h6>
-<a name="id920608"></a>
+<a name="id767300"></a>
             <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.refinement_of">Refinement
             of</a>
           </h6>
@@ -57,7 +57,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.parser_concepts.unaryparser.valid_expressions"></a><h6>
-<a name="id920686"></a>
+<a name="id767391"></a>
             <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -107,7 +107,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.unaryparser.type_expressions"></a><h6>
-<a name="id920806"></a>
+<a name="id767528"></a>
             <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.type_expressions">Type
             Expressions</a>
           </h6>
@@ -160,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.parser_concepts.unaryparser.invariants"></a><h6>
-<a name="id921116"></a>
+<a name="id767728"></a>
             <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.invariants">Invariants</a>
           </h6>
 <p>
@@ -171,7 +171,7 @@
                 <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special">&lt;</span><span class="identifier">P</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">&gt;::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
               </li></ul></div>
 <a name="spirit.qi.reference.parser_concepts.unaryparser.models"></a><h6>
-<a name="id921204"></a>
+<a name="id767838"></a>
             <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.models">Models</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/stream.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/stream.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/stream.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Stream Parsers</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="operator/sequential_or.html" title="Sequential Or Parser (a || b)">
@@ -35,7 +35,7 @@
           for input parsing.
         </p>
 <a name="spirit.qi.reference.stream.header"></a><h6>
-<a name="id1026121"></a>
+<a name="id861870"></a>
           <a class="link" href="stream.html#spirit.qi.reference.stream.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/stream.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/stream/stream.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/stream/stream.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/stream/stream.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Stream Parsers (stream, wstream, etc.)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../stream.html" title="Stream Parsers">
 <link rel="prev" href="../stream.html" title="Stream Parsers">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">stream</span></code>, <code class="computeroutput"><span class="identifier">wstream</span></code>, etc.)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.stream.stream.description"></a><h6>
-<a name="id1026220"></a>
+<a name="id862004"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.description">Description</a>
           </h6>
 <p>
@@ -45,7 +45,7 @@
 <pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">&gt;&gt;</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span><span class="special">&amp;,</span> <span class="identifier">A</span><span class="special">&amp;);</span>
 </pre>
 <a name="spirit.qi.reference.stream.stream.header"></a><h6>
-<a name="id1026324"></a>
+<a name="id862145"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/stream.hpp&gt;
@@ -55,7 +55,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.stream.stream.namespace"></a><h6>
-<a name="id1026398"></a>
+<a name="id862244"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -81,14 +81,14 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.stream.stream.synopsis"></a><h6>
-<a name="id1026514"></a>
+<a name="id862380"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Char</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">stream_parser</span><span class="special">;</span>
 </pre>
 <a name="spirit.qi.reference.stream.stream.template_parameters"></a><h6>
-<a name="id1026578"></a>
+<a name="id862463"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.template_parameters">Template
             parameters</a>
           </h6>
@@ -156,7 +156,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.stream.stream.model_of"></a><h6>
-<a name="id1026728"></a>
+<a name="id862633"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -176,7 +176,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.stream.stream.expression_semantics"></a><h6>
-<a name="id1027378"></a>
+<a name="id862741"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -286,7 +286,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.stream.stream.additional_requirements"></a><h6>
-<a name="id1027682"></a>
+<a name="id863117"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -324,7 +324,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.stream.stream.attributes"></a><h6>
-<a name="id1027899"></a>
+<a name="id863408"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -397,14 +397,14 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.stream.stream.complexity"></a><h6>
-<a name="id1028113"></a>
+<a name="id863656"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
               O(N), where N is the number of characters consumed by the stream parser
             </p></blockquote></div>
 <a name="spirit.qi.reference.stream.stream.example"></a><h6>
-<a name="id1028133"></a>
+<a name="id863683"></a>
             <a class="link" href="stream.html#spirit.qi.reference.stream.stream.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/string.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/string.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/string.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>String Parsers</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="stream/stream.html" title="Stream Parsers (stream, wstream, etc.)">
@@ -37,7 +37,7 @@
           the literal and string parsers and the symbol table.
         </p>
 <a name="spirit.qi.reference.string.module_header"></a><h6>
-<a name="id1029002"></a>
+<a name="id864733"></a>
           <a class="link" href="string.html#spirit.qi.reference.string.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/string.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/string/string.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/string/string.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/string/string.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>String Parsers (string, lit)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../string.html" title="String Parsers">
 <link rel="prev" href="../string.html" title="String Parsers">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">string</span></code>, <code class="computeroutput"><span class="identifier">lit</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.string.string.description"></a><h6>
-<a name="id1029100"></a>
+<a name="id864867"></a>
             <a class="link" href="string.html#spirit.qi.reference.string.string.description">Description</a>
           </h6>
 <p>
@@ -55,14 +55,14 @@
 <span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span> <span class="comment">// s is a std::string
 </span></pre>
 <a name="spirit.qi.reference.string.string.header"></a><h6>
-<a name="id1029325"></a>
+<a name="id865168"></a>
             <a class="link" href="string.html#spirit.qi.reference.string.string.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/string/lit.hpp&gt;
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi_lit</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <a name="spirit.qi.reference.string.string.namespace"></a><h6>
-<a name="id1029391"></a>
+<a name="id865256"></a>
             <a class="link" href="string.html#spirit.qi.reference.string.string.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -92,7 +92,7 @@
             Encoding Namespace</a>.
           </p>
 <a name="spirit.qi.reference.string.string.model_of"></a><h6>
-<a name="id1031361"></a>
+<a name="id865397"></a>
             <a class="link" href="string.html#spirit.qi.reference.string.string.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -115,7 +115,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.string.string.expression_semantics"></a><h6>
-<a name="id1031457"></a>
+<a name="id865517"></a>
             <a class="link" href="string.html#spirit.qi.reference.string.string.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -181,7 +181,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.string.string.attributes"></a><h6>
-<a name="id1031654"></a>
+<a name="id865748"></a>
             <a class="link" href="string.html#spirit.qi.reference.string.string.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -243,7 +243,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.string.string.complexity"></a><h6>
-<a name="id1031860"></a>
+<a name="id865990"></a>
             <a class="link" href="string.html#spirit.qi.reference.string.string.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -254,7 +254,7 @@
             of characters in the string to be parsed.
           </p>
 <a name="spirit.qi.reference.string.string.example"></a><h6>
-<a name="id1031891"></a>
+<a name="id866030"></a>
             <a class="link" href="string.html#spirit.qi.reference.string.string.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Symbols Parser (symbols)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../string.html" title="String Parsers">
 <link rel="prev" href="string.html" title="String Parsers (string, lit)">
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">symbols</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.string.symbols.description"></a><h6>
-<a name="id1032459"></a>
+<a name="id866732"></a>
             <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.description">Description</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
             added, thus, dynamically altering its behavior.
           </p>
 <a name="spirit.qi.reference.string.symbols.header"></a><h6>
-<a name="id1032501"></a>
+<a name="id866796"></a>
             <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/string/symbols.hpp&gt;
@@ -58,7 +58,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.qi.reference.string.symbols.namespace"></a><h6>
-<a name="id1032575"></a>
+<a name="id866895"></a>
             <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -87,14 +87,14 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.string.symbols.synopsis"></a><h6>
-<a name="id1032735"></a>
+<a name="id867083"></a>
             <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Char</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Lookup</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">symbols</span><span class="special">;</span>
 </pre>
 <a name="spirit.qi.reference.string.symbols.template_parameters"></a><h6>
-<a name="id1032813"></a>
+<a name="id867182"></a>
             <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.template_parameters">Template
             parameters</a>
           </h6>
@@ -177,7 +177,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.string.symbols.model_of"></a><h6>
-<a name="id1033007"></a>
+<a name="id867398"></a>
             <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -233,7 +233,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.string.symbols.expression_semantics"></a><h6>
-<a name="id1033323"></a>
+<a name="id867781"></a>
             <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -495,14 +495,14 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.string.symbols.attributes"></a><h6>
-<a name="id1034839"></a>
+<a name="id869285"></a>
             <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.attributes">Attributes</a>
           </h6>
 <p>
             The attribute of <code class="computeroutput"><span class="identifier">symbol</span><span class="special">&lt;</span><span class="identifier">Char</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span></code> is <code class="computeroutput"><span class="identifier">T</span></code>.
           </p>
 <a name="spirit.qi.reference.string.symbols.complexity"></a><h6>
-<a name="id1034890"></a>
+<a name="id869353"></a>
             <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.complexity">Complexity</a>
           </h6>
 <p>
@@ -539,7 +539,7 @@
 <pre class="programlisting"><span class="identifier">symbols</span><span class="special">&lt;</span><span class="identifier">Char</span><span class="special">,</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">tst_map</span><span class="special">&lt;</span><span class="identifier">Char</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">sym</span><span class="special">;</span>
 </pre>
 <a name="spirit.qi.reference.string.symbols.example"></a><h6>
-<a name="id1035022"></a>
+<a name="id869525"></a>
             <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.example">Example</a>
           </h6>
 <div class="note"><table border="0" summary="Note">

Modified: branches/release/libs/spirit/doc/html/spirit/qi/s04.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/s04.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/s04.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Qi Index</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../qi.html" title="Qi - Writing Parsers">
 <link rel="prev" href="reference/string/symbols.html" title="Symbols Parser (symbols)">
@@ -24,7 +24,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="id1035636"></a>Qi Index</h3></div></div></div>
+<a name="id870271"></a>Qi Index</h3></div></div></div>
 <p><a class="link" href="s04.html#idx_id_0">A</a> <a class="link" href="s04.html#idx_id_1">B</a> <a class="link" href="s04.html#idx_id_2">C</a> <a class="link" href="s04.html#idx_id_3">D</a> <a class="link" href="s04.html#idx_id_4">E</a> <a class="link" href="s04.html#idx_id_5">F</a> <a class="link" href="s04.html#idx_id_6">G</a> <a class="link" href="s04.html#idx_id_7">H</a> <a class="link" href="s04.html#idx_id_8">I</a> <a class="link" href="s04.html#idx_id_9">K</a> <a class="link" href="s04.html#idx_id_10">L</a> <a class="link" href="s04.html#idx_id_11">M</a> <a class="link" href="s04.html#idx_id_12">N</a> <a class="link" href="s04.html#idx_id_13">O</a> <a class="link" href="s04.html#idx_id_14">P</a> <a class="link" href="s04.html#idx_id_15">Q</a> <a class="link" href="s04.html#idx_id_16">R</a> <a class="link" href="s04.html#idx_id_17">S</a> <a class="link" href="s04.html#idx_id_18">T</a> <a class="link" href="s04.html#idx_id_19">U</a> <a class="link" href="s04.html#idx_id_20">W</a> <a class="link" href=
"s04.html#idx_id_21">X</a> </p>
 <div class="variablelist"><dl>
 <dt>
@@ -131,7 +131,10 @@
 <dt><span class="term">hex</span></dt>
 <dd><table border="0" summary="Simple list" class="simplelist"><tr><td><p><a class="link" href="reference/numeric/uint.html" title="Unsigned Integer Parsers (uint_, etc.)">Unsigned Integer Parsers ( uint_ , etc.)</a></p></td></tr></table></dd>
 <dt><span class="term">hold</span></dt>
-<dd><table border="0" summary="Simple list" class="simplelist"><tr><td><p><a class="link" href="reference/directive/hold.html" title="Parser Directive for Attribute Commit/Rollback (hold[])">Parser Directive for Attribute Commit/Rollback ( hold [] )</a></p></td></tr></table></dd>
+<dd><table border="0" summary="Simple list" class="simplelist">
+<tr><td><p><a class="link" href="reference/directive/hold.html" title="Parser Directive for Attribute Commit/Rollback (hold[])">Parser Directive for Attribute Commit/Rollback ( hold [] )</a></p></td></tr>
+<tr><td><p><a class="link" href="reference/directive/as.html" title="Parser Directives Forcing Atomic Assignment (as&lt;T&gt;, as_string[], as_wstring[])">Parser Directives Forcing Atomic Assignment ( as &lt; T &gt;, as_string [], as_wstring [] )</a></p></td></tr>
+</table></dd>
 </dl></div></dd>
 <dt>
 <a name="idx_id_8"></a><span class="term">I</span>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Employee - Parsing into structs</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="roman_numerals.html" title="Roman Numerals">
@@ -167,7 +167,7 @@
           has a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> attribute.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.lexeme"></a><h6>
-<a name="id891201"></a>
+<a name="id741095"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.lexeme">Lexeme</a>
         </h6>
 <pre class="programlisting"><span class="identifier">lexeme</span><span class="special">[</span><span class="char">'"'</span> <span class="special">&gt;&gt;</span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">&gt;&gt;</span> <span class="char">'"'</span><span class="special">];</span>
@@ -184,7 +184,7 @@
           a double quote.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.difference"></a><h6>
-<a name="id891332"></a>
+<a name="id741232"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.difference">Difference</a>
         </h6>
 <p>
@@ -203,7 +203,7 @@
           is just <code class="computeroutput"><span class="keyword">char</span></code>.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.plus"></a><h6>
-<a name="id891440"></a>
+<a name="id741369"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.plus">Plus</a>
         </h6>
 <pre class="programlisting"><span class="special">+</span><span class="identifier">a</span>
@@ -224,7 +224,7 @@
 <pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span>
 </pre>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute"></a><h6>
-<a name="id891580"></a>
+<a name="id741548"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute">Sequence
           Attribute</a>
         </h6>
@@ -265,7 +265,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing"></a><h6>
-<a name="id891805"></a>
+<a name="id741828"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing">Attribute
           Collapsing</a>
         </h6>
@@ -297,7 +297,7 @@
 <pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span>
 </pre>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.auto_rules"></a><h6>
-<a name="id892045"></a>
+<a name="id742137"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.auto_rules">Auto
           Rules</a>
         </h6>
@@ -347,7 +347,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.finally"></a><h6>
-<a name="id892412"></a>
+<a name="id742591"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.finally">Finally</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Mini XML - ASTs!</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="employee___parsing_into_structs.html" title="Employee - Parsing into structs">
@@ -73,7 +73,7 @@
           has an error in it.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.first_cut"></a><h6>
-<a name="id893110"></a>
+<a name="id743451"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.first_cut">First Cut</a>
         </h6>
 <p>
@@ -146,7 +146,7 @@
           by the placeholder <code class="computeroutput"><span class="identifier">_val</span></code>).
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.alternates"></a><h6>
-<a name="id895401"></a>
+<a name="id744890"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.alternates">Alternates</a>
         </h6>
 <pre class="programlisting"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml_node</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">node</span><span class="special">;</span>
@@ -176,7 +176,7 @@
 <span class="special">;</span>
 </pre>
 <a name="spirit.qi.tutorials.mini_xml___asts_.not_predicate"></a><h6>
-<a name="id895728"></a>
+<a name="id745300"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.not_predicate">Not
           Predicate</a>
         </h6>
@@ -203,7 +203,7 @@
           at this point.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.inherited_attribute"></a><h6>
-<a name="id895884"></a>
+<a name="id745511"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.inherited_attribute">Inherited
           Attribute</a>
         </h6>
@@ -229,7 +229,7 @@
           <code class="computeroutput"><span class="identifier">_r3</span></code>, etc. if you have more).
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit"></a><h6>
-<a name="id896080"></a>
+<a name="id745758"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit">A Lazy
           Lit</a>
         </h6>
@@ -263,7 +263,7 @@
           accessors, provided by Phoenix.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.how_it_all_works"></a><h6>
-<a name="id896411"></a>
+<a name="id746183"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.how_it_all_works">How
           it all works</a>
         </h6>
@@ -310,7 +310,7 @@
           as <code class="computeroutput"><span class="identifier">_r1</span></code>.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.the_structures"></a><h6>
-<a name="id896720"></a>
+<a name="id746584"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.the_structures">The
           Structures</a>
         </h6>
@@ -339,7 +339,7 @@
 <p>
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants"></a><h6>
-<a name="id896917"></a>
+<a name="id746819"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants">Of
           Alternates and Variants</a>
         </h6>
@@ -366,7 +366,7 @@
           of <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">B</span></code> is the attribute of <code class="computeroutput"><span class="identifier">b</span></code>.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again"></a><h6>
-<a name="id897083"></a>
+<a name="id747031"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again">Adapting
           structs again</a>
         </h6>
@@ -388,7 +388,7 @@
 <p>
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.one_more_take"></a><h6>
-<a name="id897221"></a>
+<a name="id747202"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.one_more_take">One
           More Take</a>
         </h6>
@@ -452,7 +452,7 @@
           if you missed that). There is some new stuff though. It's all in the <code class="computeroutput"><span class="identifier">xml</span></code> rule:
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.local_variables"></a><h6>
-<a name="id898133"></a>
+<a name="id748316"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.local_variables">Local
           Variables</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Mini XML - Error Handling</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="mini_xml___asts_.html" title="Mini XML - ASTs!">
@@ -114,7 +114,7 @@
           What's new?
         </p>
 <a name="spirit.qi.tutorials.mini_xml___error_handling.readable_names"></a><h6>
-<a name="id901923"></a>
+<a name="id750262"></a>
           <a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.readable_names">Readable
           Names</a>
         </h6>
@@ -133,7 +133,7 @@
 <span class="identifier">end_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"end_tag"</span><span class="special">);</span>
 </pre>
 <a name="spirit.qi.tutorials.mini_xml___error_handling.on_error"></a><h6>
-<a name="id902103"></a>
+<a name="id750487"></a>
           <a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.on_error">On
           Error</a>
         </h6>
@@ -310,7 +310,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.tutorials.mini_xml___error_handling.expectation_points"></a><h6>
-<a name="id902625"></a>
+<a name="id751081"></a>
           <a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.expectation_points">Expectation
           Points</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Quick Start</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="../tutorials.html" title="Tutorials">
@@ -27,7 +27,7 @@
 <a name="spirit.qi.tutorials.quick_start"></a><a class="link" href="quick_start.html" title="Quick Start">Quick Start</a>
 </h4></div></div></div>
 <a name="spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_"></a><h6>
-<a name="id876215"></a>
+<a name="id728760"></a>
           <a class="link" href="quick_start.html#spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_">Why
           would you want to use Spirit.Qi?</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Roman Numerals</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="number_list_attribute___one_more__with_style.html" title="Number List Attribute - one more, with style">
@@ -41,7 +41,7 @@
             </li>
 </ul></div>
 <a name="spirit.qi.tutorials.roman_numerals.symbol_table"></a><h6>
-<a name="id885634"></a>
+<a name="id736442"></a>
           <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.symbol_table">Symbol
           Table</a>
         </h6>
@@ -161,7 +161,7 @@
           They are all parsers.
         </p>
 <a name="spirit.qi.tutorials.roman_numerals.rules"></a><h6>
-<a name="id886605"></a>
+<a name="id737621"></a>
           <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.rules">Rules</a>
         </h6>
 <p>
@@ -241,7 +241,7 @@
 <pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="special">*(</span><span class="char">','</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span><span class="special">);</span>
 </pre>
 <a name="spirit.qi.tutorials.roman_numerals.grammars"></a><h6>
-<a name="id886999"></a>
+<a name="id738130"></a>
           <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.grammars">Grammars</a>
         </h6>
 <p>
@@ -342,7 +342,7 @@
             </li>
 </ul></div>
 <a name="spirit.qi.tutorials.roman_numerals.let_s_parse_"></a><h6>
-<a name="id889535"></a>
+<a name="id739063"></a>
           <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.let_s_parse_">Let's Parse!</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Parser Semantic Actions</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="warming_up.html" title="Warming up">
@@ -66,7 +66,7 @@
           simply ignored.
         </p>
 <a name="spirit.qi.tutorials.semantic_actions.examples_of_semantic_actions"></a><h6>
-<a name="id877385"></a>
+<a name="id730334"></a>
           <a class="link" href="semantic_actions.html#spirit.qi.tutorials.semantic_actions.examples_of_semantic_actions">Examples
           of Semantic Actions</a>
         </h6>
@@ -214,7 +214,7 @@
           The examples above can be found here: ../../example/qi/actions.cpp
         </p>
 <a name="spirit.qi.tutorials.semantic_actions.phoenix"></a><h6>
-<a name="id881014"></a>
+<a name="id731621"></a>
           <a class="link" href="semantic_actions.html#spirit.qi.tutorials.semantic_actions.phoenix">Phoenix</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Warming up</title>
 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="quick_start.html" title="Quick Start">
@@ -34,7 +34,7 @@
           heavily uses operator overloading to accomplish its magic.
         </p>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number"></a><h6>
-<a name="id876272"></a>
+<a name="id728845"></a>
           <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number">Trivial
           Example #1 Parsing a number</a>
         </h6>
@@ -49,7 +49,7 @@
           parsers and consistent naming conventions help you keep from going insane!
         </p>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers"></a><h6>
-<a name="id876300"></a>
+<a name="id728886"></a>
           <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers">Trivial
           Example #2 Parsing two numbers</a>
         </h6>
@@ -82,7 +82,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__3_parsing_zero_or_more_numbers"></a><h6>
-<a name="id876362"></a>
+<a name="id728972"></a>
           <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__3_parsing_zero_or_more_numbers">Trivial
           Example #3 Parsing zero or more numbers</a>
         </h6>
@@ -105,7 +105,7 @@
           also known as a Kleene Closure, but we call it the Star in most places.
         </p>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers"></a><h6>
-<a name="id876405"></a>
+<a name="id729037"></a>
           <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers">Trivial
           Example #4 Parsing a comma-delimited list of numbers</a>
         </h6>
@@ -128,7 +128,7 @@
           star encloses the complete expression above.
         </p>
 <a name="spirit.qi.tutorials.warming_up.let_s_parse_"></a><h6>
-<a name="id876536"></a>
+<a name="id729206"></a>
           <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.let_s_parse_">Let's Parse!</a>
         </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/support/multi_pass.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/support/multi_pass.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/support/multi_pass.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>The multi pass iterator</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../support.html" title="Supporting Libraries">
 <link rel="prev" href="../support.html" title="Supporting Libraries">
@@ -61,7 +61,7 @@
         iterator was created.
       </p>
 <a name="spirit.support.multi_pass.using_the_multi_pass"></a><h5>
-<a name="id1296566"></a>
+<a name="id1092800"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.using_the_multi_pass">Using the
         multi_pass</a>
       </h5>
@@ -205,7 +205,7 @@
 <p>
       </p>
 <a name="spirit.support.multi_pass.using_the_flush_multi_pass_parser"></a><h5>
-<a name="id1299749"></a>
+<a name="id1094379"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.using_the_flush_multi_pass_parser">Using
         the flush_multi_pass parser</a>
       </h5>
@@ -227,7 +227,7 @@
         thrown.
       </p>
 <a name="spirit.support.multi_pass.the_multi_pass_policies"></a><h5>
-<a name="id1299843"></a>
+<a name="id1094509"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.the_multi_pass_policies">The multi_pass
         Policies</a>
       </h5>
@@ -350,7 +350,7 @@
         we will give some guidelines how you can write your own policy implementations.
       </p>
 <a name="spirit.support.multi_pass.predefined_policies"></a><h5>
-<a name="id1300149"></a>
+<a name="id1094886"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.predefined_policies">Predefined
         policies</a>
       </h5>
@@ -631,7 +631,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="spirit.support.multi_pass.combinations__how_to_specify_your_own_custom_multi_pass"></a><h5>
-<a name="id1301126"></a>
+<a name="id1095922"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.combinations__how_to_specify_your_own_custom_multi_pass">Combinations:
         How to specify your own custom multi_pass</a>
       </h5>
@@ -678,7 +678,7 @@
         behaviors while wrapping an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span></code>.
       </p>
 <a name="spirit.support.multi_pass.dealing_with_constant_look_ahead"></a><h5>
-<a name="id1301562"></a>
+<a name="id1096478"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.dealing_with_constant_look_ahead">Dealing
         with constant look ahead</a>
       </h5>
@@ -706,7 +706,7 @@
         Also, see <a class="link" href="../structure/include.html" title="Include">Include Structure</a>.
       </p>
 <a name="spirit.support.multi_pass.reading_from_standard_input_streams"></a><h5>
-<a name="id1301760"></a>
+<a name="id1096742"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.reading_from_standard_input_streams">Reading
         from standard input streams</a>
       </h5>
@@ -738,7 +738,7 @@
         Also, see <a class="link" href="../structure/include.html" title="Include">Include Structure</a>.
       </p>
 <a name="spirit.support.multi_pass.how_to_write_a_functor_for_use_with_the__code__phrase_role__identifier__functor_input__phrase___code__inputpolicy"></a><h5>
-<a name="id1302037"></a>
+<a name="id1097104"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.how_to_write_a_functor_for_use_with_the__code__phrase_role__identifier__functor_input__phrase___code__inputpolicy">How
         to write a functor for use with the <code class="computeroutput"><span class="identifier">functor_input</span></code>
         InputPolicy</a>
@@ -797,7 +797,7 @@
 <span class="special">}</span>
 </pre>
 <a name="spirit.support.multi_pass.how_to_write_policies_for_use_with_multi_pass"></a><h5>
-<a name="id1302625"></a>
+<a name="id1097830"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.how_to_write_policies_for_use_with_multi_pass">How
         to write policies for use with multi_pass</a>
       </h5>
@@ -814,7 +814,7 @@
         copies of a particular <code class="computeroutput"><span class="identifier">multi_pass</span></code>.
       </p>
 <a name="spirit.support.multi_pass.inputpolicy"></a><h5>
-<a name="id1302701"></a>
+<a name="id1097939"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.inputpolicy">InputPolicy</a>
       </h5>
 <p>
@@ -916,7 +916,7 @@
         constructor of <code class="computeroutput"><span class="identifier">shared</span></code>.
       </p>
 <a name="spirit.support.multi_pass.ownershippolicy"></a><h5>
-<a name="id1304318"></a>
+<a name="id1099060"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.ownershippolicy">OwnershipPolicy</a>
       </h5>
 <p>
@@ -983,7 +983,7 @@
         constructor of <code class="computeroutput"><span class="identifier">shared</span></code>.
       </p>
 <a name="spirit.support.multi_pass.checkingpolicy"></a><h5>
-<a name="id1304840"></a>
+<a name="id1099719"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.checkingpolicy">CheckingPolicy</a>
       </h5>
 <p>
@@ -1042,7 +1042,7 @@
         constructor of <code class="computeroutput"><span class="identifier">shared</span></code>.
       </p>
 <a name="spirit.support.multi_pass.storagepolicy"></a><h5>
-<a name="id1305283"></a>
+<a name="id1100280"></a>
         <a class="link" href="multi_pass.html#spirit.support.multi_pass.storagepolicy">StoragePolicy</a>
       </h5>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/support/utree.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/support/utree.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/support/utree.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -94,7 +94,7 @@
         for. It is 14 bytes for a 32-bit platform and 30 bytes for a 64-bit platform.
       </p>
 <a name="spirit.support.utree.class_reference"></a><h5>
-<a name="id1307636"></a>
+<a name="id1101852"></a>
         <a class="link" href="utree.html#spirit.support.utree.class_reference">Class Reference</a>
       </h5>
 <p>
@@ -290,7 +290,7 @@
         attribute type.
       </p>
 <a name="spirit.support.utree.string_types"></a><h5>
-<a name="id1310372"></a>
+<a name="id1104402"></a>
         <a class="link" href="utree.html#spirit.support.utree.string_types">String Types</a>
       </h5>
 <p>
@@ -355,7 +355,7 @@
 <p>
       </p>
 <a name="spirit.support.utree.function_object_interface"></a><h5>
-<a name="id1310866"></a>
+<a name="id1105033"></a>
         <a class="link" href="utree.html#spirit.support.utree.function_object_interface">Function Object
         Interface</a>
       </h5>
@@ -389,7 +389,7 @@
 <p>
       </p>
 <a name="spirit.support.utree.exceptions"></a><h5>
-<a name="id1311223"></a>
+<a name="id1105465"></a>
         <a class="link" href="utree.html#spirit.support.utree.exceptions">Exceptions</a>
       </h5>
 <p>
@@ -420,7 +420,7 @@
 <p>
       </p>
 <a name="spirit.support.utree.scope"></a><h5>
-<a name="id1311394"></a>
+<a name="id1105676"></a>
         <a class="link" href="utree.html#spirit.support.utree.scope">Scope</a>
       </h5>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_1.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_1.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_1.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Spirit V2.1</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../what_s_new.html" title="What's New">
 <link rel="prev" href="spirit_2_2.html" title="Spirit V2.2">
@@ -27,7 +27,7 @@
 <a name="spirit.what_s_new.spirit_2_1"></a><a class="link" href="spirit_2_1.html" title="Spirit V2.1">Spirit V2.1</a>
 </h3></div></div></div>
 <a name="spirit.what_s_new.spirit_2_1.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_0__boost_v1_37_0__to_v2_1__boost_v1_41_0_"></a><h5>
-<a name="id861787"></a>
+<a name="id717267"></a>
         <a class="link" href="spirit_2_1.html#spirit.what_s_new.spirit_2_1.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_0__boost_v1_37_0__to_v2_1__boost_v1_41_0_">What's
         changed in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
         from V2.0 (Boost V1.37.0) to V2.1 (Boost V1.41.0)</a>
@@ -187,7 +187,7 @@
           </li>
 </ul></div>
 <a name="spirit.what_s_new.spirit_2_1.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_0__boost_v1_37_0__to_v2_1__boost_v1_41_0_"></a><h5>
-<a name="id864801"></a>
+<a name="id718425"></a>
         <a class="link" href="spirit_2_1.html#spirit.what_s_new.spirit_2_1.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_0__boost_v1_37_0__to_v2_1__boost_v1_41_0_">What's
         changed in <span class="emphasis"><em>Spirit.Lex</em></span> from V2.0 (Boost V1.37.0) to V2.1
         (Boost V1.41.0)</a>

Modified: branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_2.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_2.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_2.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Spirit V2.2</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../what_s_new.html" title="What's New">
 <link rel="prev" href="spirit_2_3.html" title="Spirit V2.3">
@@ -27,13 +27,13 @@
 <a name="spirit.what_s_new.spirit_2_2"></a><a class="link" href="spirit_2_2.html" title="Spirit V2.2">Spirit V2.2</a>
 </h3></div></div></div>
 <a name="spirit.what_s_new.spirit_2_2.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_1__boost_v1_41_0__to_v2_2__boost_v1_42_0_"></a><h5>
-<a name="id861104"></a>
+<a name="id716518"></a>
         <a class="link" href="spirit_2_2.html#spirit.what_s_new.spirit_2_2.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_1__boost_v1_41_0__to_v2_2__boost_v1_42_0_">What's
         changed in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
         from V2.1 (Boost V1.41.0) to V2.2 (Boost V1.42.0)</a>
       </h5>
 <a name="spirit.what_s_new.spirit_2_2.new_features"></a><h5>
-<a name="id861126"></a>
+<a name="id716543"></a>
         <a class="link" href="spirit_2_2.html#spirit.what_s_new.spirit_2_2.new_features">New Features</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -81,7 +81,7 @@
           </li>
 </ul></div>
 <a name="spirit.what_s_new.spirit_2_2.bug_fixes"></a><h5>
-<a name="id861449"></a>
+<a name="id716896"></a>
         <a class="link" href="spirit_2_2.html#spirit.what_s_new.spirit_2_2.bug_fixes">Bug Fixes</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">

Modified: branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_3.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_3.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_3.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Spirit V2.3</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../what_s_new.html" title="What's New">
 <link rel="prev" href="spirit_2_4.html" title="Spirit V2.4">
@@ -27,13 +27,13 @@
 <a name="spirit.what_s_new.spirit_2_3"></a><a class="link" href="spirit_2_3.html" title="Spirit V2.3">Spirit V2.3</a>
 </h3></div></div></div>
 <a name="spirit.what_s_new.spirit_2_3.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_2__boost_v1_42_0__to_v2_3__boost_v1_43_0_"></a><h5>
-<a name="id860358"></a>
+<a name="id715678"></a>
         <a class="link" href="spirit_2_3.html#spirit.what_s_new.spirit_2_3.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_2__boost_v1_42_0__to_v2_3__boost_v1_43_0_">What's
         changed in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
         from V2.2 (Boost V1.42.0) to V2.3 (Boost V1.43.0)</a>
       </h5>
 <a name="spirit.what_s_new.spirit_2_3.new_features"></a><h5>
-<a name="id860380"></a>
+<a name="id715703"></a>
         <a class="link" href="spirit_2_3.html#spirit.what_s_new.spirit_2_3.new_features">New Features</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -82,7 +82,7 @@
           </li>
 </ul></div>
 <a name="spirit.what_s_new.spirit_2_3.bug_fixes"></a><h5>
-<a name="id860774"></a>
+<a name="id716148"></a>
         <a class="link" href="spirit_2_3.html#spirit.what_s_new.spirit_2_3.bug_fixes">Bug Fixes</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -126,13 +126,13 @@
           </li>
 </ul></div>
 <a name="spirit.what_s_new.spirit_2_3.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_2__boost_v1_42_0__to_v2_3__boost_v1_43_0_"></a><h5>
-<a name="id861020"></a>
+<a name="id716421"></a>
         <a class="link" href="spirit_2_3.html#spirit.what_s_new.spirit_2_3.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_2__boost_v1_42_0__to_v2_3__boost_v1_43_0_">What's
         changed in <span class="emphasis"><em>Spirit.Lex</em></span> from V2.2 (Boost V1.42.0) to V2.3
         (Boost V1.43.0)</a>
       </h5>
 <a name="spirit.what_s_new.spirit_2_3.new_lexer_features"></a><h5>
-<a name="id861037"></a>
+<a name="id716442"></a>
         <a class="link" href="spirit_2_3.html#spirit.what_s_new.spirit_2_3.new_lexer_features">New Lexer
         Features</a>
       </h5>

Modified: branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Spirit V2.4</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../what_s_new.html" title="What's New">
 <link rel="prev" href="spirit_2_4_1.html" title="Spirit V2.4.1">
@@ -27,13 +27,13 @@
 <a name="spirit.what_s_new.spirit_2_4"></a><a class="link" href="spirit_2_4.html" title="Spirit V2.4">Spirit V2.4</a>
 </h3></div></div></div>
 <a name="spirit.what_s_new.spirit_2_4.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_3__boost_v1_43_0__to_v2_4__boost_v1_44_0_"></a><h5>
-<a name="id859739"></a>
+<a name="id714979"></a>
         <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_3__boost_v1_43_0__to_v2_4__boost_v1_44_0_">What's
         changed in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
         from V2.3 (Boost V1.43.0) to V2.4 (Boost V1.44.0)</a>
       </h5>
 <a name="spirit.what_s_new.spirit_2_4.new_features"></a><h5>
-<a name="id859760"></a>
+<a name="id715004"></a>
         <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.new_features">New Features</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
@@ -87,7 +87,7 @@
           </li>
 </ul></div>
 <a name="spirit.what_s_new.spirit_2_4.bug_fixes"></a><h5>
-<a name="id860040"></a>
+<a name="id715313"></a>
         <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.bug_fixes">Bug Fixes</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -130,13 +130,13 @@
           </li>
 </ul></div>
 <a name="spirit.what_s_new.spirit_2_4.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_3__boost_v1_43_0__to_v2_4__boost_v1_44_0_"></a><h5>
-<a name="id860275"></a>
+<a name="id715583"></a>
         <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_3__boost_v1_43_0__to_v2_4__boost_v1_44_0_">What's
         changed in <span class="emphasis"><em>Spirit.Lex</em></span> from V2.3 (Boost V1.43.0) to V2.4
         (Boost V1.44.0)</a>
       </h5>
 <a name="spirit.what_s_new.spirit_2_4.new_lexer_features"></a><h5>
-<a name="id860292"></a>
+<a name="id715604"></a>
         <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.new_lexer_features">New Lexer
         Features</a>
       </h5>
@@ -146,7 +146,7 @@
             '&gt;'.
           </li></ul></div>
 <a name="spirit.what_s_new.spirit_2_4.lexer_bug_fixes"></a><h5>
-<a name="id860316"></a>
+<a name="id715631"></a>
         <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.lexer_bug_fixes">Lexer Bug Fixes</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">

Modified: branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4_1.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4_1.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4_1.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Spirit V2.4.1</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../what_s_new.html" title="What's New">
 <link rel="prev" href="spirit_2_4_2.html" title="Spirit V2.4.2">
@@ -27,13 +27,13 @@
 <a name="spirit.what_s_new.spirit_2_4_1"></a><a class="link" href="spirit_2_4_1.html" title="Spirit V2.4.1">Spirit V2.4.1</a>
 </h3></div></div></div>
 <a name="spirit.what_s_new.spirit_2_4_1.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_4__boost_v1_44_0__to_v2_4_1__boost_v1_45_0_"></a><h5>
-<a name="id856283"></a>
+<a name="id714798"></a>
         <a class="link" href="spirit_2_4_1.html#spirit.what_s_new.spirit_2_4_1.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_4__boost_v1_44_0__to_v2_4_1__boost_v1_45_0_">What's
         changed in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
         from V2.4 (Boost V1.44.0) to V2.4.1 (Boost V1.45.0)</a>
       </h5>
 <a name="spirit.what_s_new.spirit_2_4_1.bug_fixes"></a><h5>
-<a name="id856304"></a>
+<a name="id714824"></a>
         <a class="link" href="spirit_2_4_1.html#spirit.what_s_new.spirit_2_4_1.bug_fixes">Bug Fixes</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">

Modified: branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4_2.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4_2.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/what_s_new/spirit_2_4_2.html 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Spirit V2.4.2</title>
 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Spirit 2.4.2">
 <link rel="up" href="../what_s_new.html" title="What's New">
 <link rel="prev" href="../what_s_new.html" title="What's New">
@@ -27,13 +27,13 @@
 <a name="spirit.what_s_new.spirit_2_4_2"></a><a class="link" href="spirit_2_4_2.html" title="Spirit V2.4.2">Spirit V2.4.2</a>
 </h3></div></div></div>
 <a name="spirit.what_s_new.spirit_2_4_2.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_4_1__boost_v1_45_0__to_v2_4_2__boost_v1_46_0_"></a><h5>
-<a name="id855410"></a>
+<a name="id713817"></a>
         <a class="link" href="spirit_2_4_2.html#spirit.what_s_new.spirit_2_4_2.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_4_1__boost_v1_45_0__to_v2_4_2__boost_v1_46_0_">What's
         changed in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
         from V2.4.1 (Boost V1.45.0) to V2.4.2 (Boost V1.46.0)</a>
       </h5>
 <a name="spirit.what_s_new.spirit_2_4_2.new_features_in_qi_or_karma"></a><h5>
-<a name="id855434"></a>
+<a name="id713841"></a>
         <a class="link" href="spirit_2_4_2.html#spirit.what_s_new.spirit_2_4_2.new_features_in_qi_or_karma">New
         Features in Qi or Karma</a>
       </h5>
@@ -57,7 +57,7 @@
           </li>
 </ul></div>
 <a name="spirit.what_s_new.spirit_2_4_2.bug_fixes_in_qi_or_karma"></a><h5>
-<a name="id855509"></a>
+<a name="id713921"></a>
         <a class="link" href="spirit_2_4_2.html#spirit.what_s_new.spirit_2_4_2.bug_fixes_in_qi_or_karma">Bug
         Fixes in Qi or Karma</a>
       </h5>
@@ -74,13 +74,13 @@
           </li>
 </ul></div>
 <a name="spirit.what_s_new.spirit_2_4_2.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_4_1__boost_v1_45_0__to_v2_4_2__boost_v1_46_0_"></a><h5>
-<a name="id855575"></a>
+<a name="id713995"></a>
         <a class="link" href="spirit_2_4_2.html#spirit.what_s_new.spirit_2_4_2.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_4_1__boost_v1_45_0__to_v2_4_2__boost_v1_46_0_">What's
         changed in <span class="emphasis"><em>Spirit.Lex</em></span> from V2.4.1 (Boost V1.45.0) to
         V2.4.2 (Boost V1.46.0)</a>
       </h5>
 <a name="spirit.what_s_new.spirit_2_4_2.new_features_in_lex"></a><h5>
-<a name="id855592"></a>
+<a name="id714016"></a>
         <a class="link" href="spirit_2_4_2.html#spirit.what_s_new.spirit_2_4_2.new_features_in_lex">New Features
         in Lex</a>
       </h5>
@@ -130,7 +130,7 @@
           </li>
 </ul></div>
 <a name="spirit.what_s_new.spirit_2_4_2.bug_fixes_in_lex"></a><h5>
-<a name="id856009"></a>
+<a name="id714488"></a>
         <a class="link" href="spirit_2_4_2.html#spirit.what_s_new.spirit_2_4_2.bug_fixes_in_lex">Bug Fixes
         in Lex</a>
       </h5>

Modified: branches/release/libs/spirit/doc/karma/numeric.qbk
==============================================================================
--- branches/release/libs/spirit/doc/karma/numeric.qbk (original)
+++ branches/release/libs/spirit/doc/karma/numeric.qbk 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -121,17 +121,17 @@
                          fails (unless the underlying output stream reports
                          an error).]]
     [
-[``ushort
-uint
-ulong
+[``ushort_
+uint_
+ulong_
 ulong_long``] [Generate the unsigned integer provided by a mandatory
                          attribute using the default formatting (radix is 10).
                          This generator never fails (unless the underlying
                          output stream reports an error).]]
     [
-[``ushort(num)
-uint(num)
-ulong(num)
+[``ushort_(num)
+uint_(num)
+ulong_(num)
 ulong_long(num)``] [Generate the unsigned integer provided by the
                          immediate literal value the generator is initialized
                          from using the default formatting (radix is 10). If
@@ -222,23 +222,23 @@
 [table
     [[Expression] [Attribute]]
     [[`lit(num)`] [__unused__]]
- [[`ushort`] [`unsigned short`, attribute is mandatory (otherwise
+ [[`ushort_`] [`unsigned short`, attribute is mandatory (otherwise
                          compilation will fail)]]
- [[`ushort(num)`] [`unsigned short`, attribute is optional, if it is
+ [[`ushort_(num)`] [`unsigned short`, attribute is optional, if it is
                          supplied, the generator compares the attribute with
                          `num` and succeeds only if both are equal, failing
                          otherwise.]]
 
- [[`uint`] [`unsigned int`, attribute is mandatory (otherwise
+ [[`uint_`] [`unsigned int`, attribute is mandatory (otherwise
                          compilation will fail)]]
- [[`uint(num)`] [`unsigned int`, attribute is optional, if it is
+ [[`uint_(num)`] [`unsigned int`, attribute is optional, if it is
                          supplied, the generator compares the attribute with
                          `num` and succeeds only if both are equal, failing
                          otherwise.]]
 
- [[`ulong`] [`unsigned long`, attribute is mandatory (otherwise
+ [[`ulong_`] [`unsigned long`, attribute is mandatory (otherwise
                          compilation will fail)]]
- [[`ulong(num)`] [`unsigned long`, attribute is optional, if it is
+ [[`ulong_(num)`] [`unsigned long`, attribute is optional, if it is
                          supplied, the generator compares the attribute with
                          `num` and succeeds only if both are equal, failing
                          otherwise.]]

Modified: branches/release/libs/spirit/doc/qi/directive.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi/directive.qbk (original)
+++ branches/release/libs/spirit/doc/qi/directive.qbk 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,6 +1,7 @@
 [/==============================================================================
- Copyright (C) 2001-2010 Joel de Guzman
- Copyright (C) 2001-2010 Hartmut Kaiser
+ Copyright (C) 2001-2011 Joel de Guzman
+ Copyright (C) 2001-2011 Hartmut Kaiser
+ Copyright (C) 2011 Bryce Lelbach
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,7 +11,8 @@
 
 This module includes different directives usable to augment and parameterize
 other parsers. It includes the `no_case`, `lexeme`, `omit`, `raw`, `repeat`,
-`matches`, `no_skip`, `skip`, and `hold` directives.
+`matches`, `no_skip`, `skip`, `hold`, `as<T>`, `as_string` and
+`as_wstring` directives.
 
 
 [heading Module Header]
@@ -746,4 +748,110 @@
 
 [endsect]
 
+[/------------------------------------------------------------------------------]
+[section:as Parser Directives Forcing Atomic Assignment (`as<T>, as_string[], as_wstring[]`)]
+
+[heading Description]
+
+The `as<T>` class forces the atomic assignment of it's subject's synthesized
+attribute. Usually, repetitive parsers (such as __qi_kleene__, etc) or
+sequences exposing a `vector<A>` will assign elements to the container supplied
+as their synthesized attribute by calling __customize_push_back_container__
+repeatedly. In some cases, this may be undesirable. The `as<T>` class creates a
+directive that will pass a temporary object of type `T` to it's subject. If the
+subject parser passes, the temporary object will be assigned to the directive's
+supplied attribute with a single call to __customize_assign_to__. If the
+subject parser fails, the directive's attribute is not mutated.
+
+[note The `as<T>` implicitly causes commit/rollback semantics
+similar in nature to the __qi_hold__ directive.]
+
+[caution The __customize_assign_to__ customization point will may end up
+using __customize_push_back_container__ to assign the temporary object to the
+supplied attribute by default, depending on the types involved. Use the
+interface described in __sec_customization_points__ to manipulate the semantics
+of this assignment operation.]
+
+[heading Header]
+
+ // forwards to <boost/spirit/home/qi/directive/as.hpp>
+ #include <boost/spirit/include/qi_as.hpp>
+
+Also, see __include_structure__.
+
+[heading Namespace]
+
+[table
+ [[Name]]
+ [[`boost::spirit::as_string // alias: boost::spirit::qi::as_string` ]]
+ [[`boost::spirit::as_wstring // alias: boost::spirit::qi::as_wstring` ]]
+]
+
+[heading Synopsis]
+
+ template <typename T>
+ struct as;
+
+[heading Template parameters]
+
+[table
+ [[Parameter] [Description] [Default]]
+ [[`T`] [Attribute type.] [none]]
+]
+
+[heading Model of]
+
+[:__unary_parser_concept__]
+
+[variablelist Notation
+ [[`a`] [A __parser_concept__.]]
+ [[`t`] [A temporary object of type `T`.]]
+ [[`attr`] [The attribute supplied to the directive.]]
+]
+
+[heading Expression Semantics]
+
+Semantics of an expression is defined only where it differs from, or is
+not defined in __unary_parser_concept__.
+
+[table
+ [[Expression] [Semantics]]
+ [[`as<T>()[a]`] [Create a temporary object of `t` of type `T`,
+ and invoke the subject parser `a`, supplying
+ `t` as an attribute. If the subject parser
+ passes, assign `t` to `attr`.]]
+ [[`as_string[a]`] [Equivalent to `as<std::string>()[a]`]]
+ [[`as_wstring[a]`] [Equivalent to `as<std::wstring>()[a]`]]
+]
+
+[heading Attributes]
+
+See __qi_comp_attr_notation__.
+
+[table
+ [[Expression] [Attribute]]
+ [[`as<T>()[a]`] [`a: A --> as<T>()[a]: T`]]
+]
+
+[heading Complexity]
+
+[:The complexity is defined by the complexity of the subject parser, `a`, and
+the complexity of the assignment of the temporary object `t` to the supplied
+attribute `attr`]
+
+[heading Example]
+
+[note The test harness for the example(s) below is presented in the
+__qi_basics_examples__ section.]
+
+Some using declarations:
+
+[reference_using_declarations_as]
+
+Simple usage of `as<T>`, `as_string` and `as_wstring`:
+
+[reference_as]
+
+[endsect]
+
 [endsect]

Modified: branches/release/libs/spirit/doc/qi/numeric.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi/numeric.qbk (original)
+++ branches/release/libs/spirit/doc/qi/numeric.qbk 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -55,6 +55,7 @@
 
 [table
     [[Name]]
+ [[`boost::spirit::lit // alias: boost::spirit::qi::lit`]]
     [[`boost::spirit::bin // alias: boost::spirit::qi::bin`]]
     [[`boost::spirit::oct // alias: boost::spirit::qi::oct`]]
     [[`boost::spirit::hex // alias: boost::spirit::qi::hex`]]
@@ -83,15 +84,16 @@
 [table
     [[Parameter] [Description] [Default]]
     [[`T`] [The numeric base type of the
- numeric parser.] [none]]
+ numeric parser.] [none]]
     [[`Radix`] [The radix base. This can be
- either 2: binary, 8: octal,
- 10: decimal and 16: hexadecimal.] [10]]
+ either 2 for binary, 8 for octal,
+ 10 for decimal and 16 for
+ hexadecimal.] [10]]
     [[`MinDigits`] [The minimum number of digits
- allowable.] [1]]
+ allowable.] [1]]
     [[`MaxDigits`] [The maximum number of digits
- allowable. If this is -1, then the
- maximum limit becomes unbounded.] [-1]]
+ allowable. If this is -1, then the
+ maximum limit becomes unbounded.] [-1]]
 ]
 
 [heading Model of]
@@ -99,8 +101,10 @@
 [:__primitive_parser_concept__]
 
 [variablelist Notation
- [[`NP`] [An instance of `uint_parser` (type).]]
     [[`n`] [An object of `T`, the numeric base type.]]
+ [[`num`] [Numeric literal, any unsigned integer value, or a
+ __qi_lazy_argument__ that evaluates to a unsigned integer
+ value.]]
 ]
 
 [heading Expression Semantics]
@@ -109,26 +113,122 @@
 not defined in __primitive_parser_concept__.
 
 [table
- [[Expression] [Semantics]]
- [[`NP()`] [Instantiate and (default) construct a `uint_parser`]]
- [[`bin`] [Create a `uint_parser<unsigned, 2, 1, -1>`]]
- [[`oct`] [Create a `uint_parser<unsigned, 8, 1, -1>`]]
- [[`hex`] [Create a `uint_parser<unsigned, 16, 1, -1>`]]
- [[`ushort_`] [Create a `uint_parser<unsigned short, 10, 1, -1>`]]
- [[`ulong_`] [Create a `uint_parser<unsigned long, 10, 1, -1>`]]
- [[`uint_`] [Create a `uint_parser<unsigned int, 10, 1, -1>`]]
- [[`ulong_long`] [Create a `uint_parser<unsigned long long, 10, 1, -1>`]]
+ [
+ [Expression]
+ [Semantics]
+ ][
+ [``
+ ushort_
+ uint_
+ ulong_
+ ulong_long
+ ``]
+ [Parse an unsigned integer using the default radix (10).]
+ ][
+ [``
+ num
+ lit(num)
+ ushort_(num)
+ uint_(num)
+ ulong_(num)
+ ulong_long(num)
+ ``]
+ [Match the literal `num` using the default radix (10).]
+ ][
+ [``
+ bin
+ oct
+ hex
+ ``]
+ [Parse an unsigned integer using radix 2 for `bin`, radix 8 for `oct`, and
+ radix 16 for `hex`.]
+ ][
+ [``
+ bin(num)
+ oct(num)
+ hex(num)
+ ``]
+ [Match the literal `num` using radix 2 for `bin`, radix 8 for `oct`, and
+ radix 16 for `hex`.]
+ ][
+ [``
+ uint_parser<
+ T, Radix, MinDigits, MaxDigits
+ >()
+ ``]
+ [Parse an unsigned integer of type `T` using radix `Radix`, with
+ a minimum of `MinDigits` and a maximum of `MaxDigits`.]
+ ][
+ [``
+ uint_parser<
+ T, Radix, MinDigits, MaxDigits
+ >()(num)
+ ``]
+ [Match the literal `num` of type `T` using radix `Radix`, with
+ a minimum of `MinDigits` and a maximum of `MaxDigits`.]
+ ]
 ]
 
-[important All numeric parsers check for overflow conditions based on the type `T`
- the corresponding `uint_parser<>` has been instantiated with. If the
+[important All numeric parsers check for overflow conditions based on the type
+ `T` the corresponding `uint_parser<>` has been instantiated with. If the
       parsed number overflows this type the parsing fails. Please be aware
       that the overflow check is not based on the type of the supplied
       attribute but solely depends on the template parameter `T`.]
 
 [heading Attributes]
 
-[:`T`, The numeric base type of the numeric parser.]
+[table
+ [
+ [Expression]
+ [Attribute]
+ ][
+ [``
+ num
+ lit(num)
+ ``]
+ [__unused__]
+ ][
+ [``
+ ushort_
+ ushort_(num)
+ ``]
+ [`unsigned short`]
+ ][
+ [``
+ uint_
+ uint_(num)
+ bin
+ bin(num)
+ oct
+ oct(num)
+ hex
+ hex(num)
+ ``]
+ [`unsigned`]
+ ][
+ [``
+ ulong_
+ ulong_(num)
+ ``]
+ [`unsigned long`]
+ ][
+ [``
+ ulong_long
+ ulong_long(num)
+ ``]
+ [`boost::ulong_long_type`]
+ ][
+ [``
+ uint_parser<
+ T, Radix, MinDigits, MaxDigits
+ >()
+ uint_parser<
+ T, Radix, MinDigits, MaxDigits
+ >()(num)
+ ``]
+ [`T`]
+ ]
+]
 
 [heading Complexity]
 
@@ -199,6 +299,7 @@
 
 [table
     [[Name]]
+ [[`boost::spirit::lit // alias: boost::spirit::qi::lit`]]
     [[`boost::spirit::short_ // alias: boost::spirit::qi::short_`]]
     [[`boost::spirit::int_ // alias: boost::spirit::qi::int_`]]
     [[`boost::spirit::long_ // alias: boost::spirit::qi::long_`]]
@@ -223,15 +324,16 @@
 [table
     [[Parameter] [Description] [Default]]
     [[`T`] [The numeric base type of the
- numeric parser.] [none]]
+ numeric parser.] [none]]
     [[`Radix`] [The radix base. This can be
- either 2: binary, 8: octal,
- 10: decimal and 16: hexadecimal.] [10]]
+ either 2 for binary, 8 for octal,
+ 10 for decimal and 16 for
+ hexadecimal.] [10]]
     [[`MinDigits`] [The minimum number of digits
- allowable.] [1]]
+ allowable.] [1]]
     [[`MaxDigits`] [The maximum number of digits
- allowable. If this is -1, then the
- maximum limit becomes unbounded.] [-1]]
+ allowable. If this is -1, then the
+ maximum limit becomes unbounded.] [-1]]
 ]
 
 [heading Model of]
@@ -239,8 +341,10 @@
 [:__primitive_parser_concept__]
 
 [variablelist Notation
- [[`NP`] [An instance of `int_parser` (type).]]
     [[`n`] [An object of `T`, the numeric base type.]]
+ [[`num`] [Numeric literal, any signed integer value, or a
+ __qi_lazy_argument__ that evaluates to a signed integer
+ value.]]
 ]
 
 [heading Expression Semantics]
@@ -249,12 +353,44 @@
 not defined in __primitive_parser_concept__.
 
 [table
- [[Expression] [Semantics]]
- [[`NP()`] [Instantiate and (default) construct an `int_parser`]]
- [[`short_`] [Create an `int_parser<short, 10, 1, -1>`]]
- [[`long_`] [Create an `int_parser<long, 10, 1, -1>`]]
- [[`int_`] [Create an `int_parser<int, 10, 1, -1>`]]
- [[`long_long`] [Create an `int_parser<long long, 10, 1, -1>`]]
+ [
+ [Expression]
+ [Semantics]
+ ][
+ [``
+ short_
+ int_
+ long_
+ long_long
+ ``]
+ [Parse a signed integer using the default radix (10).]
+ ][
+ [``
+ num
+ lit(num)
+ short_(num)
+ int_(num)
+ long_(num)
+ long_long(num)
+ ``]
+ [Match the literal `num` using the default radix (10).]
+ ][
+ [``
+ int_parser<
+ T, Radix, MinDigits, MaxDigits
+ >()
+ ``]
+ [Parse a signed integer of type `T` using radix `Radix`, with
+ a minimum of `MinDigits` and a maximum of `MaxDigits`.]
+ ][
+ [``
+ int_parser<
+ T, Radix, MinDigits, MaxDigits
+ >()(num)
+ ``]
+ [Match the literal `num` of type `T` using radix `Radix`, with
+ a minimum of `MinDigits` and a maximum of `MaxDigits`.]
+ ]
 ]
 
 [important All numeric parsers check for overflow conditions based on the type `T`
@@ -265,7 +401,52 @@
 
 [heading Attributes]
 
-[:`T`, The numeric base type of the numeric parser.]
+[table
+ [
+ [Expression]
+ [Attribute]
+ ][
+ [``
+ num
+ lit(num)
+ ``]
+ [__unused__]
+ ][
+ [``
+ short_
+ short_(num)
+ ``]
+ [`short`]
+ ][
+ [``
+ int_
+ int_(num)
+ ``]
+ [`int`]
+ ][
+ [``
+ long_
+ long_(num)
+ ``]
+ [`long`]
+ ][
+ [``
+ long_long
+ long_long(num)
+ ``]
+ [`boost::long_long_type`]
+ ][
+ [``
+ int_parser<
+ T, Radix, MinDigits, MaxDigits
+ >()
+ int_parser<
+ T, Radix, MinDigits, MaxDigits
+ >()(num)
+ ``]
+ [`T`]
+ ]
+]
 
 [heading Complexity]
 
@@ -331,6 +512,7 @@
 
 [table
     [[Name]]
+ [[`boost::spirit::lit // alias: boost::spirit::qi::lit`]]
     [[`boost::spirit::float_ // alias: boost::spirit::qi::float_`]]
     [[`boost::spirit::double_ // alias: boost::spirit::qi::double_`]]
     [[`boost::spirit::long_double // alias: boost::spirit::qi::long_double`]]
@@ -346,9 +528,9 @@
 [table
     [[Parameter] [Description] [Default]]
     [[`T`] [The numeric base type of the
- numeric parser.] [none]]
+ numeric parser.] [none]]
     [[`RealPolicies`] [Policies control the
- parser's behavior.] [`real_policies<T>`]]
+ parser's behavior.] [`real_policies<T>`]]
 ]
 
 [heading Model of]
@@ -356,9 +538,10 @@
 [:__primitive_parser_concept__]
 
 [variablelist Notation
- [[`NP`] [An instance of `real_parser` (type).]]
- [[`RP`] [A `RealPolicies` (type).]]
     [[`n`] [An object of `T`, the numeric base type.]]
+ [[`num`] [Numeric literal, any real value, or a __qi_lazy_argument__
+ that evaluates to a real value.]]
+ [[`RP`] [A `RealPolicies` (type).]]
     [[`exp`] [A `int` exponent.]]
     [[`b`] [A `bool` flag.]]
     [[`f`, `l`] [__fwditer__. first/last iterator pair.]]
@@ -370,16 +553,84 @@
 not defined in __primitive_parser_concept__.
 
 [table
- [[Expression] [Semantics]]
- [[`NP()`] [Instantiate and (default) construct an `real_parser`]]
- [[`float_`] [Create an `real_parser<float, real_policies<T> >`]]
- [[`double_`] [Create an `real_parser<double, real_policies<T> >`]]
- [[`long_double`] [Create an `real_parser<long double, real_policies<T> >`]]
+ [
+ [Expression]
+ [Semantics]
+ ][
+ [``
+ float_
+ double_
+ long_double
+ ``]
+ [Parse a real using the default policies (`real_policies<T>`).]
+ ][
+ [``
+ num
+ lit(num)
+ float_(num)
+ double_(num)
+ long_double(num)
+ ``]
+ [Match the literal `num` using the default policies (`real_policies<T>`).]
+ ][
+ [``
+ real_parser<
+ T, RealPolicies
+ >()
+ ``]
+ [Parse a real of type `T` using `RealPolicies`.]
+ ][
+ [``
+ real_parser<
+ T, RealPolicies
+ >()(num)
+ ``]
+ [Match the literal `num` of type `T` using `RealPolicies`.]
+ ]
 ]
 
 [heading Attributes]
 
-[:`T`, The numeric base type of the numeric parser.]
+[table
+ [
+ [Expression]
+ [Attribute]
+ ][
+ [``
+ num
+ lit(num)
+ ``]
+ [__unused__]
+ ][
+ [``
+ float_
+ float_(num)
+ ``]
+ [`float`]
+ ][
+ [``
+ double_
+ double_(num)
+ ``]
+ [`double`]
+ ][
+ [``
+ long_double
+ long_double(num)
+ ``]
+ [`long double`]
+ ][
+ [``
+ real_parser<
+ T, RealPolicies
+ >()
+ real_parser<
+ T, RealPolicies
+ >()(num)
+ ``]
+ [`T`]
+ ]
+]
 
 [heading Complexity]
 
@@ -627,9 +878,10 @@
 [:__primitive_parser_concept__]
 
 [variablelist Notation
- [[`BP`] [An instance of `bool_parser` (type).]]
     [[`BP`] [A boolean `Policies` (type).]]
     [[`b`] [An object of `B`, the numeric base type.]]
+ [[`boolean`] [Numeric literal, any boolean value, or a
+ __qi_lazy_argument__ that evaluates to a boolean value.]]
     [[`f`, `l`] [__fwditer__. first/last iterator pair.]]
     [[`attr`] [An attribute value.]]
     [[`Context`] [The type of the parse context of the current invocation of
@@ -643,20 +895,78 @@
 not defined in __primitive_parser_concept__.
 
 [table
- [[Expression] [Semantics]]
- [[`BP()`] [Instantiate and (default) construct a `bool_parser`]]
- [[`bool_`] [Create a `bool_parser<bool, bool_policies<bool> >`]]
- [[`true_`] [Create a `bool_parser<bool, bool_policies<bool> >`
- which is succeeding only after matching `"true"`.]]
- [[`false_`] [Create a `bool_parser<bool, bool_policies<bool> >`
- which is succeeding only after matching `"false"`.]]
+ [
+ [Expression]
+ [Semantics]
+ ][
+ [``
+ bool_
+ ``]
+ [Parse a boolean using the default policies (`bool_policies<T>`).]
+ ][
+ [``
+ boolean
+ lit(boolean)
+ bool_(boolean)
+ ``]
+ [Match the literal `boolean` using the default policies (`bool_policies<T>`).]
+ ][
+ [``
+ true_
+ false_
+ ``]
+ [Match `"true"` and `"false"`, respectively.]
+ ][
+ [``
+ bool_parser<
+ T, BoolPolicies
+ >()
+ ``]
+ [Parse a real of type `T` using `BoolPolicies`.]
+ ][
+ [``
+ bool_parser<
+ T, BoolPolicies
+ >()(boolean)
+ ``]
+ [Match the literal `boolean` of type `T` using `BoolPolicies`.]
+ ]
 ]
 
 [note All boolean parsers properly respect the __qi_no_case__`[]` directive.]
 
 [heading Attributes]
 
-[:`B`, The boolean type of the boolean parser.]
+[table
+ [
+ [Expression]
+ [Attribute]
+ ][
+ [``
+ boolean
+ lit(boolean)
+ ``]
+ [__unused__]
+ ][
+ [``
+ true_
+ false_
+ bool_
+ bool_(boolean)
+ ``]
+ [`bool`]
+ ][
+ [``
+ bool_parser<
+ T, BoolPolicies
+ >()
+ bool_parser<
+ T, BoolPolicies
+ >()(num)
+ ``]
+ [`T`]
+ ]
+]
 
 [heading Complexity]
 

Modified: branches/release/libs/spirit/example/qi/reference.cpp
==============================================================================
--- branches/release/libs/spirit/example/qi/reference.cpp (original)
+++ branches/release/libs/spirit/example/qi/reference.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -11,10 +11,12 @@
 // boostinspect:naassert_macro
 
 //[reference_includes
+#include <boost/spirit/include/support_utree.hpp>
 #include <boost/spirit/include/qi.hpp>
 #include <boost/spirit/include/phoenix_core.hpp>
 #include <boost/spirit/include/phoenix_operator.hpp>
 #include <boost/fusion/include/adapt_struct.hpp>
+#include <boost/assert.hpp>
 #include <iostream>
 #include <string>
 #include <cstdlib>
@@ -425,6 +427,46 @@
     }
     
     {
+ //[reference_using_declarations_as
+ using boost::spirit::utree;
+ using boost::spirit::utree_type;
+ using boost::spirit::utf8_symbol_type;
+ using boost::spirit::qi::as;
+ using boost::spirit::qi::as_string;
+ using boost::spirit::qi::char_;
+ //]
+
+ //[reference_as
+ /*`To properly handle string concatenation in __utree__, we
+ make use of `as_string[]`. We also use `as<T>` to explicitly create
+ a __utree__ symbol node.*/
+ utree ut;
+
+ typedef as<utf8_symbol_type> as_symbol_type;
+ as_symbol_type const as_symbol = as_symbol_type();
+
+ test_parser_attr("foo", as_string[*char_], ut);
+ std::cout << ut << std::endl; // will output >"foo"<
+ BOOST_ASSERT(ut.which() == utree_type::string_type);
+ ut.clear();
+
+ test_parser_attr("foo", as<std::string>()[*char_], ut);
+ std::cout << ut << std::endl; // will output >"foo"<
+ BOOST_ASSERT(ut.which() == utree_type::string_type);
+ ut.clear();
+
+ test_parser_attr("foo", as_symbol[*char_], ut);
+ std::cout << ut << std::endl; // will output >foo<
+ BOOST_ASSERT(ut.which() == utree_type::symbol_type);
+ ut.clear();
+
+ test_parser_attr("foo", as<utf8_symbol_type>()[*char_], ut);
+ std::cout << ut << std::endl; // will output >foo<
+ BOOST_ASSERT(ut.which() == utree_type::symbol_type);
+ //]
+ }
+
+ {
         //[reference_using_declarations_no_skip
         using boost::spirit::qi::no_skip;
         using boost::spirit::qi::char_;
@@ -742,12 +784,22 @@
     // uint
     {
         //[reference_using_declarations_uint
+ using boost::phoenix::val;
+ using boost::spirit::qi::lit;
         using boost::spirit::qi::uint_;
         using boost::spirit::qi::uint_parser;
         //]
 
         //[reference_uint
+ // unsigned int
         test_parser("12345", uint_);
+ test_parser("12345", uint_(12345));
+ test_parser("12345", uint_(val(12345)));
+
+ // literals
+ test_parser("12345", 12345);
+ test_parser("12345", lit(12345));
+ test_parser("12345", lit(val(12345)));
         //]
         
         //[reference_thousand_separated
@@ -761,48 +813,97 @@
     // int
     {
         //[reference_using_declarations_int
+ using boost::phoenix::val;
+ using boost::spirit::qi::lit;
         using boost::spirit::qi::int_;
         //]
 
         //[reference_int
- test_parser("+12345", int_);
+ // signed int
+ test_parser("+12345", int_);
         test_parser("-12345", int_);
+ test_parser("+12345", int_(12345));
+ test_parser("-12345", int_(-12345));
+ test_parser("+12345", int_(val(12345)));
+ test_parser("-12345", int_(val(-12345)));
+
+ // literals
+ test_parser("+12345", 12345);
+ test_parser("-12345", -12345);
+ test_parser("+12345", lit(12345));
+ test_parser("-12345", lit(-12345));
+ test_parser("+12345", lit(val(12345)));
+ test_parser("-12345", lit(val(-12345)));
         //]
     }
 
     // real
     {
         //[reference_using_declarations_real
+ using boost::phoenix::val;
+ using boost::spirit::qi::lit;
         using boost::spirit::qi::double_;
         using boost::spirit::qi::real_parser;
         //]
 
         //[reference_real
+ // double
         test_parser("+12345e6", double_);
+ test_parser("-12345e6", double_);
+ test_parser("+12345e6", double_(12345e6));
+ test_parser("-12345e6", double_(-123456e6));
+ test_parser("+12345e6", double_(val(12345e6)));
+ test_parser("-12345e6", double_(val(-123456e6)));
+
+ // literals
+ test_parser("+12345e6", 12345e6);
+ test_parser("-12345e6", -12345e6);
+ test_parser("+12345e6", lit(12345e6));
+ test_parser("-12345e6", lit(-123456e6));
+ test_parser("+12345e6", lit(val(12345e6)));
+ test_parser("-12345e6", lit(val(-123456e6)));
         //]
         
         //[reference_custom_real
         real_parser<double, ts_real_policies<double> > ts_real;
         test_parser("123,456,789.01", ts_real);
+ test_parser("123,456,789.01", ts_real(123456789.01));
         //]
     }
 
     // bool_
     {
         //[reference_using_declarations_bool
+ using boost::phoenix::val;
+ using boost::spirit::qi::lit;
         using boost::spirit::qi::bool_;
         using boost::spirit::qi::bool_parser;
         //]
 
         //[reference_bool
+ // bool
         test_parser("true", bool_);
         test_parser("false", bool_);
+ test_parser("true", bool_(true));
+ test_parser("false", bool_(false));
+ test_parser("true", bool_(val(true)));
+ test_parser("false", bool_(val(false)));
+
+ // literals
+ test_parser("true", true);
+ test_parser("false", false);
+ test_parser("true", lit(true));
+ test_parser("false", lit(false));
+ test_parser("true", lit(val(true)));
+ test_parser("false", lit(val(false)));
         //]
 
         //[reference_custom_bool
         bool_parser<bool, backwards_bool_policies> backwards_bool;
         test_parser("true", backwards_bool);
         test_parser("eurt", backwards_bool);
+ test_parser("true", backwards_bool(true));
+ test_parser("eurt", backwards_bool(false));
         //]
     }
 

Modified: branches/release/libs/spirit/test/Jamfile
==============================================================================
--- branches/release/libs/spirit/test/Jamfile (original)
+++ branches/release/libs/spirit/test/Jamfile 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,6 +1,7 @@
 #==============================================================================
-# Copyright (c) 2001-2010 Joel de Guzman
-# Copyright (c) 2001-2010 Hartmut Kaiser
+# Copyright (c) 2001-2011 Joel de Guzman
+# Copyright (c) 2001-2011 Hartmut Kaiser
+# Copyright (c) 2011 Bryce Lelbach
 #
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -11,8 +12,6 @@
         <include>.
         <toolset>gcc:<cxxflags>-ftemplate-depth-300
         <toolset>darwin:<cxxflags>-ftemplate-depth-300
-# <toolset>gcc:<linkflags>-Wl,--enable-auto-import
-# <toolset>darwin:<linkflags>-Wl,--enable-auto-import
     :
     :
     ;
@@ -23,177 +22,228 @@
 import testing ;
 
 {
+ ###########################################################################
     test-suite spirit_v2/qi :
 
- # run Qi tests
- [ run qi/actions.cpp : : : : ]
- [ run qi/alternative.cpp : : : : ]
- [ run qi/attr.cpp : : : : ]
- [ run qi/attribute.cpp : : : : ]
- [ run qi/and_predicate.cpp : : : : ]
- [ run qi/auto.cpp : : : : ]
- [ run qi/binary.cpp : : : : ]
- [ run qi/bool.cpp : : : : ]
- [ run qi/char.cpp : : : : ]
- [ run qi/char_class.cpp : : : : ]
- [ run qi/debug.cpp : : : : ]
- [ run qi/difference.cpp : : : : ]
- [ run qi/encoding.cpp : : : : ]
- [ run qi/end.cpp : : : : ]
- [ run qi/eps.cpp : : : : ]
- [ run qi/expect.cpp : : : : ]
- [ run qi/grammar.cpp : : : : ]
- [ run qi/int.cpp : : : : ]
- [ run qi/kleene.cpp : : : : ]
- [ run qi/lazy.cpp : : : : ]
- [ run qi/lexeme.cpp : : : : ]
- [ run qi/lit.cpp : : : : ]
- [ run qi/list.cpp : : : : ]
- [ run qi/hold.cpp : : : : ]
- [ run qi/match_manip.cpp : : : : ]
- [ run qi/match_manip_attr.cpp : : : : ]
- [ run qi/matches.cpp : : : : ]
- [ run qi/no_case.cpp : : : : ]
- [ run qi/no_skip.cpp : : : : ]
- [ run qi/not_predicate.cpp : : : : ]
- [ run qi/optional.cpp : : : : ]
- [ run qi/parse_attr.cpp : : : : ]
- [ run qi/permutation.cpp : : : : ]
- [ run qi/plus.cpp : : : : ]
- [ run qi/range_run.cpp : : : : ]
- [ run qi/raw.cpp : : : : ]
- [ run qi/real.cpp : : : : ]
- [ run qi/repeat.cpp : : : : ]
- [ run qi/rule.cpp : : : : ]
- [ run qi/sequence.cpp : : : : ]
- [ run qi/sequential_or.cpp : : : : ]
- [ run qi/skip.cpp : : : : ]
- [ run qi/symbols.cpp : : : : ]
- [ run qi/terminal_ex.cpp : : : : ]
- [ run qi/tst.cpp : : : : ]
- [ run qi/uint.cpp : : : : ]
- [ run qi/utree.cpp : : : : ]
+ [ run qi/actions.cpp : : : : qi_actions ]
+ [ run qi/alternative.cpp : : : : qi_alternative ]
+ [ run qi/attr.cpp : : : : qi_attr ]
+ [ run qi/attribute1.cpp : : : : qi_attribute1 ]
+ [ run qi/attribute2.cpp : : : : qi_attribute2 ]
+ [ run qi/and_predicate.cpp : : : : qi_and_predicate ]
+ [ run qi/auto.cpp : : : : qi_auto ]
+ [ run qi/binary.cpp : : : : qi_binary ]
+ [ run qi/bool1.cpp : : : : qi_bool1 ]
+ [ run qi/bool2.cpp : : : : qi_bool2 ]
+ [ run qi/char.cpp : : : : qi_char ]
+ [ run qi/char_class.cpp : : : : qi_char_class ]
+ [ run qi/debug.cpp : : : : qi_debug ]
+ [ run qi/difference.cpp : : : : qi_difference ]
+ [ run qi/encoding.cpp : : : : qi_encoding ]
+ [ run qi/end.cpp : : : : qi_end ]
+ [ run qi/eps.cpp : : : : qi_eps ]
+ [ run qi/expect.cpp : : : : qi_expect ]
+ [ run qi/grammar.cpp : : : : qi_grammar ]
+ [ run qi/int1.cpp : : : : qi_int1 ]
+ [ run qi/int2.cpp : : : : qi_int2 ]
+ [ run qi/int3.cpp : : : : qi_int3 ]
+ [ run qi/kleene.cpp : : : : qi_kleene ]
+ [ run qi/lazy.cpp : : : : qi_lazy ]
+ [ run qi/lexeme.cpp : : : : qi_lexeme ]
+ [ run qi/lit.cpp : : : : qi_lit ]
+ [ run qi/list.cpp : : : : qi_list ]
+ [ run qi/hold.cpp : : : : qi_hold ]
+ [ run qi/match_manip1.cpp : : : : qi_match_manip1 ]
+ [ run qi/match_manip2.cpp : : : : qi_match_manip2 ]
+ [ run qi/match_manip3.cpp : : : : qi_match_manip3 ]
+ [ run qi/match_manip_attr.cpp : : : : qi_match_manip_attr ]
+ [ run qi/matches.cpp : : : : qi_matches ]
+ [ run qi/no_case.cpp : : : : qi_no_case ]
+ [ run qi/no_skip.cpp : : : : qi_no_skip ]
+ [ run qi/not_predicate.cpp : : : : qi_not_predicate ]
+ [ run qi/optional.cpp : : : : qi_optional ]
+ [ run qi/parse_attr.cpp : : : : qi_parse_attr ]
+ [ run qi/permutation.cpp : : : : qi_permutation ]
+ [ run qi/plus.cpp : : : : qi_plus ]
+ [ run qi/range_run.cpp : : : : qi_range_run ]
+ [ run qi/raw.cpp : : : : qi_raw ]
+ [ run qi/real1.cpp : : : : qi_real1 ]
+ [ run qi/real2.cpp : : : : qi_real2 ]
+ [ run qi/real3.cpp : : : : qi_real3 ]
+ [ run qi/real4.cpp : : : : qi_real4 ]
+ [ run qi/real5.cpp : : : : qi_real5 ]
+ [ run qi/repeat.cpp : : : : qi_repeat ]
+ [ run qi/rule1.cpp : : : : qi_rule1 ]
+ [ run qi/rule2.cpp : : : : qi_rule2 ]
+ [ run qi/rule3.cpp : : : : qi_rule3 ]
+ [ run qi/rule4.cpp : : : : qi_rule4 ]
+ [ run qi/sequence.cpp : : : : qi_sequence ]
+ [ run qi/sequential_or.cpp : : : : qi_sequential_or ]
+ [ run qi/skip.cpp : : : : qi_skip ]
+ [ run qi/symbols1.cpp : : : : qi_symbols1 ]
+ [ run qi/symbols2.cpp : : : : qi_symbols2 ]
+ [ run qi/terminal_ex.cpp : : : : qi_terminal_ex ]
+ [ run qi/tst.cpp : : : : qi_tst ]
+ [ run qi/uint1.cpp : : : : qi_uint1 ]
+ [ run qi/uint2.cpp : : : : qi_uint2 ]
+ [ run qi/uint3.cpp : : : : qi_uint3 ]
+ [ run qi/utree1.cpp : : : : qi_utree1 ]
+ [ run qi/utree2.cpp : : : : qi_utree2 ]
+ [ run qi/utree3.cpp : : : : qi_utree3 ]
+ [ run qi/utree4.cpp : : : : qi_utree4 ]
     
     ;
+
+ ###########################################################################
+ test-suite spirit_v2/qi_regressions :
 
- test-suite spirit_v2/karma :
+ [ compile qi/regression_attr_with_action.cpp : : qi_regression_attr_with_action ]
+ [ compile qi/regression_debug_optional.cpp : : qi_regression_debug_optional ]
+ [ compile qi/regression_one_element_fusion_sequence.cpp : : qi_regression_one_element_fusion_sequence ]
+ [ compile qi/regression_one_element_sequence_attribute.cpp : : qi_regression_one_element_sequence_attribute ]
+ [ run qi/regression_clear.cpp : : : : qi_regression_clear ]
+ [ run qi/regression_float_fraction.cpp : : : : qi_regression_float_fraction ]
+ [ run qi/regression_lazy_repeat.cpp : : : : qi_regression_lazy_repeat ]
+ [ run qi/regression_reorder.cpp : : : : qi_regression_reorder ]
+ [ run qi/regression_repeat.cpp : : : : qi_regression_repeat ]
 
- # run Karma tests
- [ run karma/actions.cpp : : : : karma_actions ]
- [ run karma/and_predicate.cpp : : : : karma_and_predicate ]
- [ run karma/alternative.cpp : : : : karma_alternative ]
- [ run karma/attribute.cpp : : : : karma_attribute ]
- [ run karma/auto.cpp : : : : karma_auto ]
- [ run karma/binary.cpp : : : : karma_binary ]
- [ run karma/bool.cpp : : : : karma_bool ]
- [ run karma/buffer.cpp : : : : karma_buffer ]
- [ run karma/case_handling.cpp : : : : ]
- [ run karma/center_alignment.cpp : : : : ]
- [ run karma/char.cpp : : : : karma_char ]
- [ run karma/char_class.cpp : : : : karma_char_class ]
- [ run karma/columns.cpp : : : : ]
- [ run karma/debug.cpp : : : : karma_debug ]
- [ run karma/delimiter.cpp : : : : ]
- [ run karma/duplicate.cpp : : : : ]
- [ run karma/encoding.cpp : : : : karma_encoding ]
- [ run karma/eol.cpp : : : : karma_eol ]
- [ run karma/eps.cpp : : : : karma_eps ]
- [ run karma/format_manip.cpp : : : : ]
- [ run karma/format_manip_attr.cpp : : : : ]
- [ run karma/format_pointer_container.cpp : : : : ]
- [ run karma/generate_attr.cpp : : : : ]
- [ run karma/grammar.cpp : : : : karma_grammar ]
- [ run karma/int_numerics.cpp : : : : ]
- [ run karma/kleene.cpp : : : : karma_kleene ]
- [ run karma/lazy.cpp : : : : karma_lazy ]
- [ run karma/left_alignment.cpp : : : : ]
- [ run karma/list.cpp : : : : karma_list ]
- [ run karma/lit.cpp : : : : karma_lit ]
- [ run karma/maxwidth.cpp : : : : ]
- [ run karma/not_predicate.cpp : : : : karma_not_predicate ]
- [ run karma/omit.cpp : : : : karma_omit ]
- [ run karma/optional.cpp : : : : karma_optional ]
- [ run karma/pattern.cpp : : : : karma_pattern ]
- [ run karma/pattern2.cpp : : : : karma_pattern2 ]
- [ run karma/pattern3.cpp : : : : karma_pattern3 ]
- [ run karma/plus.cpp : : : : karma_plus ]
- [ run karma/real_numerics.cpp : : : : ]
- [ run karma/repeat.cpp : : : : karma_repeat ]
- [ run karma/right_alignment.cpp : : : : ]
- [ run karma/sequence.cpp : : : : karma_sequence ]
- [ run karma/stream.cpp : : : : karma_stream ]
- [ run karma/symbols.cpp : : : : karma_symbols ]
- [ run karma/tricky_alignment.cpp : : : : ]
- [ run karma/utree.cpp : : : : karma_utree ]
+ ;
 
- [ compile-fail karma/grammar_fail.cpp : : karma_grammar_fail ]
- [ compile-fail karma/rule_fail.cpp : : karma_rule_fail ]
+ ###########################################################################
+ test-suite spirit_v2/karma :
+
+ [ compile-fail karma/grammar_fail.cpp : : karma_grammar_fail ]
+ [ compile-fail karma/rule_fail.cpp : : karma_rule_fail ]
+ [ run karma/actions.cpp : : : : karma_actions ]
+ [ run karma/alternative1.cpp : : : : karma_alternative1 ]
+ [ run karma/alternative2.cpp : : : : karma_alternative2 ]
+ [ run karma/and_predicate.cpp : : : : karma_and_predicate ]
+ [ run karma/attribute.cpp : : : : karma_attribute ]
+ [ run karma/auto1.cpp : : : : karma_auto1 ]
+ [ run karma/auto2.cpp : : : : karma_auto2 ]
+ [ run karma/auto3.cpp : : : : karma_auto3 ]
+ [ run karma/binary1.cpp : : : : karma_binary1 ]
+ [ run karma/binary2.cpp : : : : karma_binary2 ]
+ [ run karma/binary3.cpp : : : : karma_binary3 ]
+ [ run karma/bool.cpp : : : : karma_bool ]
+ [ run karma/buffer.cpp : : : : karma_buffer ]
+ [ run karma/case_handling1.cpp : : : : karma_case_handling1 ]
+ [ run karma/case_handling2.cpp : : : : karma_case_handling2 ]
+ [ run karma/case_handling3.cpp : : : : karma_case_handling3 ]
+ [ run karma/center_alignment.cpp : : : : karma_center_alignment ]
+ [ run karma/char1.cpp : : : : karma_char1 ]
+ [ run karma/char2.cpp : : : : karma_char2 ]
+ [ run karma/char_class.cpp : : : : karma_char_class ]
+ [ run karma/columns.cpp : : : : karma_columns ]
+ [ run karma/debug.cpp : : : : karma_debug ]
+ [ run karma/delimiter.cpp : : : : karma_delimiter ]
+ [ run karma/duplicate.cpp : : : : karma_duplicate ]
+ [ run karma/encoding.cpp : : : : karma_encoding ]
+ [ run karma/eol.cpp : : : : karma_eol ]
+ [ run karma/eps.cpp : : : : karma_eps ]
+ [ run karma/format_manip.cpp : : : : karma_format_manip ]
+ [ run karma/format_manip_attr.cpp : : : : karma_format_manip_attr ]
+ [ run karma/format_pointer_container.cpp : : : : karma_format_pointer_container ]
+ [ run karma/generate_attr.cpp : : : : karma_generate_attr ]
+ [ run karma/grammar.cpp : : : : karma_grammar ]
+ [ run karma/int1.cpp : : : : karma_int1 ]
+ [ run karma/int2.cpp : : : : karma_int2 ]
+ [ run karma/int3.cpp : : : : karma_int3 ]
+ [ run karma/kleene.cpp : : : : karma_kleene ]
+ [ run karma/lazy.cpp : : : : karma_lazy ]
+ [ run karma/left_alignment.cpp : : : : karma_left_alignment ]
+ [ run karma/list.cpp : : : : karma_list ]
+ [ run karma/lit.cpp : : : : karma_lit ]
+ [ run karma/maxwidth.cpp : : : : karma_maxwidth ]
+ [ run karma/not_predicate.cpp : : : : karma_not_predicate ]
+ [ run karma/omit.cpp : : : : karma_omit ]
+ [ run karma/optional.cpp : : : : karma_optional ]
+ [ run karma/pattern1.cpp : : : : karma_pattern1 ]
+ [ run karma/pattern2.cpp : : : : karma_pattern2 ]
+ [ run karma/pattern3.cpp : : : : karma_pattern3 ]
+ [ run karma/pattern4.cpp : : : : karma_pattern4 ]
+ [ run karma/plus.cpp : : : : karma_plus ]
+ [ run karma/real1.cpp : : : : karma_real1 ]
+ [ run karma/real2.cpp : : : : karma_real2 ]
+ [ run karma/real3.cpp : : : : karma_real3 ]
+ [ run karma/repeat1.cpp : : : : karma_repeat1 ]
+ [ run karma/repeat2.cpp : : : : karma_repeat2 ]
+ [ run karma/right_alignment.cpp : : : : karma_right_alignment ]
+ [ run karma/sequence1.cpp : : : : karma_sequence1 ]
+ [ run karma/sequence2.cpp : : : : karma_sequence2 ]
+ [ run karma/stream.cpp : : : : karma_stream ]
+ [ run karma/symbols1.cpp : : : : karma_symbols1 ]
+ [ run karma/symbols2.cpp : : : : karma_symbols2 ]
+ [ run karma/symbols3.cpp : : : : karma_symbols3 ]
+ [ run karma/tricky_alignment.cpp : : : : karma_tricky_alignment ]
+ [ run karma/utree1.cpp : : : : karma_utree1 ]
+ [ run karma/utree2.cpp : : : : karma_utree2 ]
+ [ run karma/utree3.cpp : : : : karma_utree3 ]
+ [ run karma/wstream.cpp : : : : karma_wstream ]
+
+ ;
+
+ ###########################################################################
+ test-suite spirit_v2/karma_regressions :
+
+ [ run karma/regression_optional_double.cpp : : : : karma_regression_optional_double ]
+ [ run karma/regression_semantic_action_attribute.cpp : : : : karma_regression_semantic_action_attribute ]
+ [ run karma/regression_real_scientific.cpp : : : : karma_regression_real_scientific ]
 
     ;
 
+ ###########################################################################
     test-suite spirit_v2/lex :
 
- # run Lex tests
- [ run lex/lexertl1.cpp : : : : ]
- [ run lex/lexertl2.cpp : : : : ]
- [ run lex/lexertl3.cpp : : : : ]
- [ run lex/lexertl4.cpp : : : : ]
- [ run lex/lexertl5.cpp : : : : ]
- [ run lex/state_switcher_test.cpp : : : : ]
- [ run lex/lexer_state_switcher.cpp : : : : ]
- [ run lex/set_token_value.cpp : : : : ]
- [ run lex/dedent_handling_phoenix.cpp : : : : ]
- [ run lex/set_token_value_phoenix.cpp : : : : ]
- [ run lex/semantic_actions.cpp : : : : ]
- [ run lex/auto_switch_lexerstate.cpp : : : : ]
- [ run lex/id_type_enum.cpp : : : : ]
+ [ run lex/lexertl1.cpp : : : : lex_lexertl1 ]
+ [ run lex/lexertl2.cpp : : : : lex_lexertl2 ]
+ [ run lex/lexertl3.cpp : : : : lex_lexertl3 ]
+ [ run lex/lexertl4.cpp : : : : lex_lexertl4 ]
+ [ run lex/lexertl5.cpp : : : : lex_lexertl5 ]
+ [ run lex/state_switcher.cpp : : : : lex_state_switcher ]
+ [ run lex/lexer_state_switcher.cpp : : : : lex_lexer_state_switcher ]
+ [ run lex/set_token_value.cpp : : : : lex_set_token_value ]
+ [ run lex/dedent_handling_phoenix.cpp : : : : lex_dedent_handling_phoenix ]
+ [ run lex/set_token_value_phoenix.cpp : : : : lex_set_token_value_phoenix ]
+ [ run lex/semantic_actions.cpp : : : : lex_semantic_actions ]
+ [ run lex/auto_switch_lexerstate.cpp : : : : lex_auto_switch_lexerstate ]
+ [ run lex/id_type_enum.cpp : : : : lex_id_type_enum ]
     
     ;
 
+ ###########################################################################
     test-suite spirit_v2/lex_regressions :
 
- # run Lex regression tests
- [ run lex/regression001.cpp : : : : lex_regression001 ]
- [ run lex/regression002.cpp : : : : lex_regression002 ]
- [ run lex/regression003_generate.cpp : $(LEX_DIR)/matlib_static.h : : : lex_regression003_generate ]
- [ run lex/regression003.cpp : : : <dependency>.//lex_regression003_generate : lex_regression003 ]
- [ run lex/regression003_generate_switch.cpp : $(LEX_DIR)/matlib_static_switch.h : : : lex_regression003_generate_switch ]
- [ run lex/regression003_switch.cpp : : : <dependency>.//lex_regression003_generate_switch : lex_regression003_switch ]
- [ run lex/regression004.cpp : : : : lex_regression004 ]
- [ run lex/regression005.cpp : : : : lex_regression005 ]
- [ run lex/regression006.cpp : : : : lex_regression006 ]
- [ run lex/regression007.cpp : : : : lex_regression007 ]
- [ run lex/regression008.cpp : : : : lex_regression008 ]
- [ run lex/regression009.cpp : : : : lex_regression009 ]
- [ run lex/regression010.cpp : : : : lex_regression010 ]
+ [ run lex/regression_basic_lexer.cpp : : : : lex_regression_basic_lexer ]
+ [ run lex/regression_matlib_dynamic.cpp : : : : lex_regression_matlib_dynamic ]
+ [ run lex/regression_matlib_generate.cpp : $(LEX_DIR)/matlib_static.h : : : lex_regression_matlib_generate ]
+ [ run lex/regression_matlib_static.cpp : : : <dependency>.//lex_regression_matlib_generate : lex_regression_matlib_static ]
+ [ run lex/regression_matlib_generate_switch.cpp : $(LEX_DIR)/matlib_static_switch.h : : : lex_regression_matlib_generate_switch ]
+ [ run lex/regression_matlib_switch.cpp : : : <dependency>.//lex_regression_matlib_generate_switch : lex_regression_matlib_switch ]
+ [ run lex/regression_word_count.cpp : : : : lex_regression_word_count ]
+ [ run lex/regression_syntax_error.cpp : : : : lex_regression_syntax_error ]
+ [ run lex/regression_wide.cpp : : : : lex_regression_wide ]
+ [ run lex/regression_file_iterator1.cpp : : : : lex_regression_file_iterator1 ]
+ [ run lex/regression_file_iterator2.cpp : : : : lex_regression_file_iterator2 ]
+ [ run lex/regression_file_iterator3.cpp : : : : lex_regression_file_iterator3 ]
+ [ run lex/regression_file_iterator4.cpp : : : : lex_regression_file_iterator4 ]
     
     ;
 
+ ###########################################################################
     test-suite spirit_v2/support :
 
- # support tests
- [ compile support/multi_pass_regression001.cpp : : support_multi_pass_regression001 ]
- [ compile support/multi_pass_regression002.cpp : : support_multi_pass_regression002 ]
- [ compile support/multi_pass_regression003.cpp : : support_multi_pass_regression003 ]
- [ run support/utree_test.cpp : : : : support_utree_test ]
+ [ run support/utree.cpp : : : : support_utree ]
 
     ;
 
- test-suite spirit_v2/regressions :
-
- # regression tests
- [ compile qi/attr_with_action.cpp : : qi_attr_with_action ]
- [ run qi/clear_test.cpp : : : : ]
- [ run qi/reorder_test.cpp : : : : ]
- [ 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 ]
- [ run karma/real_scientific.cpp : : : : ]
- [ run qi/repeat_regression.cpp : : : : ]
- [ compile qi/one_element_fusion_sequence.cpp : : qi_one_element_fusion_sequence ]
+ ###########################################################################
+ test-suite spirit_v2/support_regressions :
 
- ;
+ [ compile support/regression_multi_pass_position_iterator.cpp : : support_regression_multi_pass_position_iterator ]
+ [ compile support/regression_multi_pass_functor.cpp : : support_regression_multi_pass_functor ]
+ [ compile support/regression_multi_pass_parse.cpp : : support_regression_multi_pass_parse ]
 
+ ;
 }
 

Deleted: branches/release/libs/spirit/test/karma/alternative.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/alternative.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,262 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// #define KARMA_TEST_COMPILE_FAIL
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/karma_auxiliary.hpp>
-#include <boost/spirit/include/karma_char.hpp>
-#include <boost/spirit/include/karma_string.hpp>
-#include <boost/spirit/include/karma_numeric.hpp>
-#include <boost/spirit/include/karma_generate.hpp>
-#include <boost/spirit/include/karma_operator.hpp>
-#include <boost/spirit/include/karma_directive.hpp>
-#include <boost/spirit/include/karma_nonterminal.hpp>
-#include <boost/spirit/include/karma_auxiliary.hpp>
-
-#include "test.hpp"
-
-using namespace spirit_test;
-
-///////////////////////////////////////////////////////////////////////////////
-int
-main()
-{
- using namespace boost;
- using namespace boost::spirit;
- using namespace boost::spirit::ascii;
-
- {
- BOOST_TEST(test("x", char_('x') | char_('i')));
- BOOST_TEST(test("xi", char_('x') << char_('i') | char_('i')));
- BOOST_TEST(test("i", char_('i') | char_('x') << char_('i')));
-
- BOOST_TEST(test("x", buffer[char_('x')] | char_('i')));
-
- variant<int, char> v (10);
- BOOST_TEST(test("10", char_ | int_, v));
- BOOST_TEST(test("10", int_ | char_, v));
- BOOST_TEST(test("a", lit('a') | char_ | int_, v));
- BOOST_TEST(test("a", char_ | lit('a') | int_, v));
- BOOST_TEST(test("10", int_ | lit('a') | char_, v));
-
- v = 'c';
- BOOST_TEST(test("c", char_ | int_, v));
- BOOST_TEST(test("a", lit('a') | char_ | int_, v));
- BOOST_TEST(test("c", char_ | lit('a') | int_, v));
- BOOST_TEST(test("a", int_ | lit('a') | char_, v));
- BOOST_TEST(test("c", int_ | char_ | lit('a'), v));
- }
-
- // testing for alignment/truncation problems on little endian systems
- // (big endian systems will fail one of the other tests below)
- {
- // test optional attribute
- optional<variant<int, char> > v;
- BOOST_TEST(!test("", char_ | int_, v));
- BOOST_TEST(!test("", int_ | char_, v));
- BOOST_TEST(test("a", lit('a') | char_ | int_, v));
- BOOST_TEST(test("a", char_ | lit('a') | int_, v));
- BOOST_TEST(test("a", int_ | lit('a') | char_, v));
-
- v = 10;
- BOOST_TEST(test("10", char_ | int_, v));
- BOOST_TEST(test("10", int_ | char_, v));
- BOOST_TEST(test("a", lit('a') | char_ | int_, v));
- BOOST_TEST(test("a", char_ | lit('a') | int_, v));
- BOOST_TEST(test("10", int_ | lit('a') | char_, v));
-
- v = 'c';
- BOOST_TEST(test("c", char_ | int_, v));
- BOOST_TEST(test("a", lit('a') | char_ | int_, v));
- BOOST_TEST(test("c", char_ | lit('a') | int_, v));
- BOOST_TEST(test("a", int_ | lit('a') | char_, v));
- BOOST_TEST(test("c", int_ | char_ | lit('a'), v));
- }
-
- {
- // more tests for optional attribute
- optional<int> o;
- BOOST_TEST(test("a", lit('a') | int_, o));
- BOOST_TEST(test("a", int_ | lit('a'), o));
-
- o = 10;
- BOOST_TEST(test("a", lit('a') | int_, o));
- BOOST_TEST(test("10", int_ | lit('a'), o));
- }
-
- {
- int i = 10;
- BOOST_TEST(test("a", lit('a') | int_, i));
- BOOST_TEST(test("10", int_ | lit('a'), i));
- }
-
- {
- BOOST_TEST(test("abc", string | int_, std::string("abc")));
- BOOST_TEST(test("1234", string | int_, 1234));
- BOOST_TEST(test("abc", int_ | string, std::string("abc")));
- BOOST_TEST(test("1234", int_ | string, 1234));
- }
-
- {
- // testing for alignment/truncation problems on little endian systems
- // (big endian systems will fail one of the other tests below)
- std::basic_string<wchar_t> generated;
- std::back_insert_iterator<std::basic_string<wchar_t> > outit(generated);
- boost::variant<int, char> v(10);
- bool result = karma::generate_delimited(outit
- , karma::int_ | karma::char_, karma::char_(' '), v);
- BOOST_TEST(result && generated == L"10 ");
- }
-
- {
- // test if alternatives with all components having unused
- // attribute generate first alternative
- fusion::vector<char, char> v('a', 'b');
- BOOST_TEST(test("axb", char_ << (lit('x') | lit('i')) << char_, v));
- BOOST_TEST(test("axib",
- char_ << (lit('x') << lit('i') | lit('i')) << char_, v));
- }
-
- {
- BOOST_TEST(test_delimited("x ", char_('x') | char_('i'), char_(' ')));
- BOOST_TEST(test_delimited("x i ",
- char_('x') << char_('i') | char_('i'), char_(' ')));
- BOOST_TEST(test_delimited("i ",
- char_('i') | char_('x') << char_('i'), char_(' ')));
-
- variant<int, char> v (10);
- BOOST_TEST(test_delimited("10 ", char_ | int_, v, char_(' ')));
- BOOST_TEST(test_delimited("10 ", int_ | char_, v, char_(' ')));
- BOOST_TEST(test_delimited("a ", lit('a') | char_ | int_, v, char_(' ')));
- BOOST_TEST(test_delimited("a ", char_ | lit('a') | int_, v, char_(' ')));
- BOOST_TEST(test_delimited("10 ", int_ | lit('a') | char_, v, char_(' ')));
-
- v = 'c';
- BOOST_TEST(test_delimited("c ", char_ | int_, v, char_(' ')));
- BOOST_TEST(test_delimited("a ", lit('a') | char_ | int_, v, char_(' ')));
- BOOST_TEST(test_delimited("c ", char_ | lit('a') | int_, v, char_(' ')));
- BOOST_TEST(test_delimited("a ", int_ | lit('a') | char_, v, char_(' ')));
- BOOST_TEST(test_delimited("c ", int_ | char_ | lit('a'), v, char_(' ')));
- }
-
-// this leads to infinite loops
-// {
-// variant<int, std::string> v(10);
-// BOOST_TEST(test("10", int_ | +char_, v));
-//
-// v = "abc";
-// BOOST_TEST(test("abc", int_ | +char_, v));
-// }
-
- {
- // if nothing matches, the first explicit alternative will be chosen
- variant<double, char const*> v (10.0);
- BOOST_TEST(test("11", char_ | lit(11), v));
- BOOST_TEST(test("11", lit(11) | char_ , v));
- BOOST_TEST(test("10.0", double_ | lit(11), v));
- BOOST_TEST(test("11", lit(11) | double_, v));
- BOOST_TEST(!test("", char_ | int_, v));
-
- v = "c";
- BOOST_TEST(test("11", char_ | lit(11), v));
- BOOST_TEST(test("11", double_ | lit(11), v));
- BOOST_TEST(!test("", char_ | int_, v));
- }
-
- {
- // in strict mode if nothing matches, the alternative will fail
- variant<double, char const*> v (10.0);
- BOOST_TEST(!test("11", strict[char_ | lit(11)], v));
- BOOST_TEST(test("11", strict[lit(11) | char_] , v));
-
- v = "c";
- BOOST_TEST(!test("11", strict[char_ | lit(11)], v));
- }
-
- {
- // if nothing matches, the first explicit alternative will be chosen
- variant<double, char const*> v (10.0);
- BOOST_TEST(test_delimited("11 ", char_ | lit(11), v, char_(' ')));
- BOOST_TEST(test_delimited("11 ", lit(11) | char_ , v, char_(' ')));
- BOOST_TEST(test_delimited("10.0 ", double_ | lit(11), v, char_(' ')));
- BOOST_TEST(test_delimited("11 ", lit(11) | double_, v, char_(' ')));
- BOOST_TEST(!test_delimited("", char_ | int_, v, char_(' ')));
-
- v = "c";
- BOOST_TEST(test_delimited("11 ", char_ | lit(11), v, char_(' ')));
- BOOST_TEST(test_delimited("11 ", double_ | lit(11), v, char_(' ')));
- BOOST_TEST(!test_delimited("", char_ | int_, v, char_(' ')));
- }
-
- {
- // if nothing matches, the first explicit alternative will be chosen,
- // optionals need to be accepted
- optional<variant<double, char const*> > v (10.0);
- BOOST_TEST(test_delimited("11 ", char_ | lit(11), v, char_(' ')));
- BOOST_TEST(test_delimited("11 ", lit(11) | char_ , v, char_(' ')));
- BOOST_TEST(test_delimited("10.0 ", double_ | lit(11), v, char_(' ')));
- BOOST_TEST(test_delimited("11 ", lit(11) | double_, v, char_(' ')));
- BOOST_TEST(!test_delimited("", char_ | int_, v, char_(' ')));
-
- v = "c";
- BOOST_TEST(test_delimited("11 ", char_ | lit(11), v, char_(' ')));
- BOOST_TEST(test_delimited("11 ", double_ | lit(11), v, char_(' ')));
- BOOST_TEST(!test_delimited("", char_ | int_, v, char_(' ')));
- }
-
- {
- std::vector<int> v;
- BOOST_TEST(test("[]", '[' << (int_ % ", ") << ']' | "[]", v));
- BOOST_TEST(test("[]", '[' << -(int_ % ", ") << ']', v));
- BOOST_TEST(test("[]", '[' << ((int_ % ", ") | eps) << ']', v));
-
- v.push_back(5);
- v.push_back(5);
- v.push_back(5);
- BOOST_TEST(test("[5, 5, 5]", '[' << (int_ % ", ") << ']' | "[]", v));
- }
-
- {
- boost::optional<int> v;
- BOOST_TEST(test("error", int_ | "error" << omit[-int_], v));
- BOOST_TEST(test("error", int_ | "error" << omit[int_], v));
- v = 1;
- BOOST_TEST(test("1", int_ | "error" << omit[-int_], v));
- BOOST_TEST(test("1", int_ | "error" << omit[int_], v));
- }
-
- {
- typedef spirit_test::output_iterator<char>::type outiter_type;
- namespace karma = boost::spirit::karma;
-
- karma::rule<outiter_type, int()> r = int_;
- std::vector<int> v;
- BOOST_TEST(test("", '>' << r % ',' | karma::eps, v));
-
- v.push_back(1);
- v.push_back(2);
- v.push_back(3);
- v.push_back(4);
- BOOST_TEST(test(">1,2,3,4", '>' << r % ',' | karma::eps, v));
- }
-
- {
- typedef spirit_test::output_iterator<char>::type outiter_type;
- namespace karma = boost::spirit::karma;
-
- karma::rule<outiter_type, boost::optional<int>()> r = int_;
- boost::optional<int> o;
- BOOST_TEST(test("error", r | "error", o));
-
- o = 10;
- BOOST_TEST(test("10", r | "error", o));
- }
-
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/karma/auto.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/auto.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,334 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/fusion/include/std_pair.hpp>
-#include <boost/spirit/include/karma_bool.hpp>
-#include <boost/spirit/include/karma_char.hpp>
-#include <boost/spirit/include/karma_numeric.hpp>
-#include <boost/spirit/include/karma_string.hpp>
-#include <boost/spirit/include/karma_nonterminal.hpp>
-#include <boost/spirit/include/karma_operator.hpp>
-#include <boost/spirit/include/karma_directive.hpp>
-#include <boost/spirit/include/karma_auto.hpp>
-
-#include "test.hpp"
-
-namespace karma = boost::spirit::karma;
-namespace traits = boost::spirit::traits;
-
-///////////////////////////////////////////////////////////////////////////////
-template <typename Char, typename T>
-bool test_create_generator(Char const *expected, T const& t)
-{
- std::basic_string<Char> generated;
- std::back_insert_iterator<std::basic_string<Char> > sink(generated);
-
- BOOST_TEST((traits::meta_create_exists<karma::domain, T>::value));
- bool result = karma::generate(sink, karma::create_generator<T>(), t);
-
- spirit_test::print_if_failed("test_create_generator", result, generated, expected);
- return result && generated == expected;
-}
-
-template <typename Char, typename T>
-bool test_create_generator_auto(Char const *expected, T const& t)
-{
- std::basic_string<Char> generated;
- std::back_insert_iterator<std::basic_string<Char> > sink(generated);
-
- BOOST_TEST((traits::meta_create_exists<karma::domain, T>::value));
- bool result = karma::generate(sink, t);
-
- spirit_test::print_if_failed("test_create_generator (auto)", result, generated, expected);
- return result && generated == expected;
-}
-
-template <typename Char, typename Attribute>
-bool test_rule(Char const *expected, Attribute const& attr)
-{
- BOOST_TEST((traits::meta_create_exists<karma::domain, Attribute>::value));
-
- typedef typename spirit_test::output_iterator<Char>::type sink_type;
- karma::rule<sink_type, Attribute()> r =
- karma::create_generator<Attribute>();
- return spirit_test::test(expected, r, attr);
-}
-
-template <typename Char, typename Attribute, typename Delimiter>
-bool test_rule_delimited(Char const *expected, Attribute const& attr
- , Delimiter const& d)
-{
- BOOST_TEST((traits::meta_create_exists<karma::domain, Attribute>::value));
-
- typedef typename spirit_test::output_iterator<Char>::type sink_type;
- karma::rule<sink_type, Attribute(), Delimiter> r =
- karma::create_generator<Attribute>();
- return spirit_test::test_delimited(expected, r, attr, d);
-}
-
-struct my_type {};
-
-///////////////////////////////////////////////////////////////////////////////
-int main()
-{
- {
- BOOST_TEST((!traits::meta_create_exists<karma::domain, my_type>::value));
- }
-
- {
- // test primitive types
- BOOST_TEST(test_create_generator("true", true));
- BOOST_TEST(test_create_generator("1", 1));
- BOOST_TEST(test_create_generator("1.1", 1.1));
- BOOST_TEST(test_create_generator("test", std::string("test")));
- BOOST_TEST(test_create_generator("a", 'a'));
- BOOST_TEST(test_create_generator(L"a", L'a'));
-
- // test containers
- std::vector<int> v;
- v.push_back(0);
- v.push_back(1);
- v.push_back(2);
- BOOST_TEST(test_create_generator("012", v));
-
- std::list<int> l;
- l.push_back(0);
- l.push_back(1);
- l.push_back(2);
- BOOST_TEST(test_create_generator("012", l));
-
- // test optional
- boost::optional<int> o;
- BOOST_TEST(test_create_generator("", o));
- o = 1;
- BOOST_TEST(test_create_generator("1", o));
-
- // test alternative
- boost::variant<int, double, float, std::string> vv;
- vv = 1;
- BOOST_TEST(test_create_generator("1", vv));
- vv = 1.0;
- BOOST_TEST(test_create_generator("1.0", vv));
- vv = 1.0f;
- BOOST_TEST(test_create_generator("1.0", vv));
- vv = "some string";
- BOOST_TEST(test_create_generator("some string", vv));
-
- // test fusion sequence
- std::pair<int, double> p (1, 2.0);
- BOOST_TEST(test_create_generator("12.0", p));
- }
-
- {
- // test primitive types
-// BOOST_TEST(test_create_generator_auto("true", true));
-// BOOST_TEST(test_create_generator_auto("1", 1));
-// BOOST_TEST(test_create_generator_auto("1.1", 1.1));
-// BOOST_TEST(test_create_generator_auto("test", std::string("test")));
-// BOOST_TEST(test_create_generator_auto("a", 'a'));
-// BOOST_TEST(test_create_generator_auto(L"a", L'a'));
-
- // test containers
- std::vector<int> v;
- v.push_back(0);
- v.push_back(1);
- v.push_back(2);
- BOOST_TEST(test_create_generator_auto("012", v));
-
- std::list<int> l;
- l.push_back(0);
- l.push_back(1);
- l.push_back(2);
- BOOST_TEST(test_create_generator_auto("012", l));
-
- // test optional
- boost::optional<int> o;
- BOOST_TEST(test_create_generator_auto("", o));
- o = 1;
- BOOST_TEST(test_create_generator_auto("1", o));
-
- // test alternative
- boost::variant<int, double, float, std::string> vv;
- vv = 1;
- BOOST_TEST(test_create_generator_auto("1", vv));
- vv = 1.0;
- BOOST_TEST(test_create_generator_auto("1.0", vv));
- vv = 1.0f;
- BOOST_TEST(test_create_generator_auto("1.0", vv));
- vv = "some string";
- BOOST_TEST(test_create_generator_auto("some string", vv));
-
- // test fusion sequence
- std::pair<int, double> p (1, 2.0);
- BOOST_TEST(test_create_generator_auto("12.0", p));
- }
-
- {
- using karma::auto_;
- using karma::upper;
- using spirit_test::test;
- using spirit_test::test_delimited;
-
- // test primitive types
- BOOST_TEST(test("true", auto_, true));
- BOOST_TEST(test("1", auto_, 1));
- BOOST_TEST(test("1.1", auto_, 1.1));
- BOOST_TEST(test("test", auto_, "test"));
- BOOST_TEST(test(L"test", auto_, L"test"));
- BOOST_TEST(test("a", auto_, 'a'));
- BOOST_TEST(test(L"a", auto_, L'a'));
-
- BOOST_TEST(test("TRUE", upper[auto_], true));
- BOOST_TEST(test("TEST", upper[auto_], "test"));
-
- // test containers
- std::vector<int> v;
- v.push_back(0);
- v.push_back(1);
- v.push_back(2);
- BOOST_TEST(test("012", auto_, v));
- BOOST_TEST(test("0,1,2", auto_ % ',', v));
- BOOST_TEST(test_delimited("0,1,2,", auto_, v, ','));
-
- std::list<int> l;
- l.push_back(0);
- l.push_back(1);
- l.push_back(2);
- BOOST_TEST(test("012", auto_, l));
- BOOST_TEST(test("0,1,2", auto_ % ',', l));
- BOOST_TEST(test_delimited("0,1,2,", auto_, l, ','));
-
- // test optional
- boost::optional<int> o;
- BOOST_TEST(test("", auto_, o));
- o = 1;
- BOOST_TEST(test("1", auto_, o));
-
- // test alternative
- boost::variant<int, double, float, std::string> vv;
- vv = 1;
- BOOST_TEST(test("1", auto_, vv));
- vv = 1.0;
- BOOST_TEST(test("1.0", auto_, vv));
- vv = 1.0f;
- BOOST_TEST(test("1.0", auto_, vv));
- vv = "some string";
- BOOST_TEST(test("some string", auto_, vv));
-
- // test fusion sequence
- std::pair<int, double> p (1, 2.0);
- BOOST_TEST(test("12.0", auto_, p));
- BOOST_TEST(test_delimited("1,2.0,", auto_, p, ','));
- }
-
- {
- using karma::auto_;
- using karma::upper;
- using spirit_test::test;
- using spirit_test::test_delimited;
-
- // test primitive types
- BOOST_TEST(test("true", auto_(true)));
- BOOST_TEST(test("1", auto_(1)));
- BOOST_TEST(test("1.1", auto_(1.1)));
- BOOST_TEST(test("test", auto_("test")));
- BOOST_TEST(test(L"test", auto_(L"test")));
- BOOST_TEST(test("a", auto_('a')));
- BOOST_TEST(test(L"a", auto_(L'a')));
-
- BOOST_TEST(test("TRUE", upper[auto_(true)]));
- BOOST_TEST(test("TEST", upper[auto_("test")]));
-
- // test containers
- std::vector<int> v;
- v.push_back(0);
- v.push_back(1);
- v.push_back(2);
- BOOST_TEST(test("012", auto_(v)));
- BOOST_TEST(test_delimited("0,1,2,", auto_(v), ','));
-
- std::list<int> l;
- l.push_back(0);
- l.push_back(1);
- l.push_back(2);
- BOOST_TEST(test("012", auto_(l)));
- BOOST_TEST(test_delimited("0,1,2,", auto_(l), ','));
-
- // test optional
- boost::optional<int> o;
- BOOST_TEST(test("", auto_(o)));
- o = 1;
- BOOST_TEST(test("1", auto_(o)));
-
- // test alternative
- boost::variant<int, double, float, std::string> vv;
- vv = 1;
- BOOST_TEST(test("1", auto_(vv)));
- vv = 1.0;
- BOOST_TEST(test("1.0", auto_(vv)));
- vv = 1.0f;
- BOOST_TEST(test("1.0", auto_(vv)));
- vv = "some string";
- BOOST_TEST(test("some string", auto_(vv)));
-
- // test fusion sequence
- std::pair<int, double> p (1, 2.0);
- BOOST_TEST(test("12.0", auto_, p));
- BOOST_TEST(test_delimited("1,2.0,", auto_(p), ','));
- }
-
- {
- using spirit_test::test;
- using spirit_test::test_delimited;
-
- // test primitive types
- BOOST_TEST(test_rule("true", true));
- BOOST_TEST(test_rule("1", 1));
- BOOST_TEST(test_rule("1.1", 1.1));
- BOOST_TEST(test_rule("test", std::string("test")));
-
- // test containers
- std::vector<int> v;
- v.push_back(0);
- v.push_back(1);
- v.push_back(2);
- BOOST_TEST(test_rule("012", v));
- BOOST_TEST(test_rule_delimited("0,1,2,", v, ','));
-
- std::list<int> l;
- l.push_back(0);
- l.push_back(1);
- l.push_back(2);
- BOOST_TEST(test_rule("012", l));
- BOOST_TEST(test_rule_delimited("0,1,2,", l, ','));
-
- // test optional
- boost::optional<int> o;
- BOOST_TEST(test_rule("", o));
- o = 1;
- BOOST_TEST(test_rule("1", o));
-
- // test alternative
- boost::variant<int, double, float, std::string> vv;
- vv = 1;
- BOOST_TEST(test_rule("1", vv));
- vv = 1.0;
- BOOST_TEST(test_rule("1.0", vv));
- vv = 1.0f;
- BOOST_TEST(test_rule("1.0", vv));
- vv = "some string";
- BOOST_TEST(test_rule("some string", vv));
-
- // test fusion sequence
- std::pair<int, double> p (1, 2.0);
- BOOST_TEST(test_rule("12.0", p));
- BOOST_TEST(test_rule_delimited("1,2.0,", p, ','));
- }
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/karma/binary.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/binary.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,276 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/karma_binary.hpp>
-#include <boost/spirit/include/karma_generate.hpp>
-#include <boost/spirit/include/karma_phoenix_attributes.hpp>
-
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_statement.hpp>
-
-#include "test.hpp"
-
-using namespace spirit_test;
-
-///////////////////////////////////////////////////////////////////////////////
-int
-main()
-{
- using namespace boost::spirit;
- using namespace boost::phoenix;
-
- { // test native endian binaries
-#ifdef BOOST_LITTLE_ENDIAN
- BOOST_TEST(binary_test("\x01", 1, byte_, 0x01));
- BOOST_TEST(binary_test("\x80", 1, byte_, 0x80));
- BOOST_TEST(binary_test("\x01\x82", 2, word, 0x8201));
- BOOST_TEST(binary_test("\x81\x02", 2, word, 0x0281));
- BOOST_TEST(binary_test("\x01\x02\x03\x84", 4, dword, 0x84030201));
- BOOST_TEST(binary_test("\x81\x02\x03\x04", 4, dword, 0x04030281));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x88", 8, qword,
- 0x8807060504030201LL));
- BOOST_TEST(binary_test("\x81\x02\x03\x04\x05\x06\x07\x08", 8, qword,
- 0x0807060504030281LL));
-#endif
-
- BOOST_TEST(binary_test_delimited("\x01\x00\x00\x00", 4, byte_, 0x01, pad(4)));
- BOOST_TEST(binary_test_delimited("\x01\x02\x00\x00", 4, word, 0x0201, pad(4)));
- BOOST_TEST(binary_test_delimited("\x01\x02\x03\x04", 4, dword, 0x04030201, pad(4)));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test_delimited("\x01\x02\x03\x04\x05\x06\x07\x08\x00\x00", 10,
- qword, 0x0807060504030201LL, pad(10)));
-#endif
-
-#else // BOOST_LITTLE_ENDIAN
-
- BOOST_TEST(binary_test("\x01", 1, byte_, 0x01));
- BOOST_TEST(binary_test("\x80", 1, byte_, 0x80));
- BOOST_TEST(binary_test("\x01\x82", 2, word, 0x0182));
- BOOST_TEST(binary_test("\x81\x02", 2, word, 0x8102));
- BOOST_TEST(binary_test("\x01\x02\x03\x84", 4, dword, 0x01020384));
- BOOST_TEST(binary_test("\x81\x02\x03\x04", 4, dword, 0x81020304));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x88", 8, qword,
- 0x0102030405060788LL));
- BOOST_TEST(binary_test("\x81\x02\x03\x04\x05\x06\x07\x08", 8, qword,
- 0x8102030405060708LL));
-#endif
-
- BOOST_TEST(binary_test_delimited("\x01\x00\x00\x00", 4, byte_, 0x01, pad(4)));
- BOOST_TEST(binary_test_delimited("\x01\x02\x00\x00", 4, word, 0x0102, pad(4)));
- BOOST_TEST(binary_test_delimited("\x01\x02\x03\x04", 4, dword, 0x01020304, pad(4)));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test_delimited("\x01\x02\x03\x04\x05\x06\x07\x08\x00\x00", 10,
- qword, 0x0102030405060708LL, pad(10)));
-#endif
-#endif
- }
-
- { // test native endian binaries
-#ifdef BOOST_LITTLE_ENDIAN
- BOOST_TEST(binary_test("\x01", 1, byte_(0x01)));
- BOOST_TEST(binary_test("\x01\x02", 2, word(0x0201)));
- BOOST_TEST(binary_test("\x01\x02\x03\x04", 4, dword(0x04030201)));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x08", 8,
- qword(0x0807060504030201LL)));
-#endif
-#else
- BOOST_TEST(binary_test("\x01", 1, byte_(0x01)));
- BOOST_TEST(binary_test("\x01\x02", 2, word(0x0102)));
- BOOST_TEST(binary_test("\x01\x02\x03\x04", 4, dword(0x01020304)));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x08", 8,
- qword(0x0102030405060708LL)));
-#endif
-#endif
- }
-
- { // test big endian binaries
- BOOST_TEST(binary_test("\x01\x82", 2, big_word, 0x0182));
- BOOST_TEST(binary_test("\x81\x02", 2, big_word, 0x8102));
- BOOST_TEST(binary_test("\x01\x02\x03\x84", 4, big_dword, 0x01020384));
- BOOST_TEST(binary_test("\x81\x02\x03\x04", 4, big_dword, 0x81020304));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x88", 8, big_qword,
- 0x0102030405060788LL));
- BOOST_TEST(binary_test("\x81\x02\x03\x04\x05\x06\x07\x08", 8, big_qword,
- 0x8102030405060708LL));
- BOOST_TEST(binary_test_delimited("\x01\x02\x03\x04\x05\x06\x07\x08\x00\x00",
- 10, big_qword, 0x0102030405060708LL, pad(10)));
-#endif
- }
-
- {
- BOOST_TEST(binary_test("\x01\x02", 2, big_word(0x0102)));
- BOOST_TEST(binary_test("\x01\x02\x03\x04", 4, big_dword(0x01020304)));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x08", 8,
- big_qword(0x0102030405060708LL)));
- BOOST_TEST(binary_test_delimited("\x01\x02\x03\x04\x05\x06\x07\x08\x00\x00",
- 10, big_qword(0x0102030405060708LL), pad(10)));
-#endif
- }
-
- { // test little endian binaries
- BOOST_TEST(binary_test("\x01\x82", 2, little_word, 0x8201));
- BOOST_TEST(binary_test("\x81\x02", 2, little_word, 0x0281));
- BOOST_TEST(binary_test("\x01\x02\x03\x84", 4, little_dword, 0x84030201));
- BOOST_TEST(binary_test("\x81\x02\x03\x04", 4, little_dword, 0x04030281));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x88", 8, little_qword,
- 0x8807060504030201LL));
- BOOST_TEST(binary_test("\x81\x02\x03\x04\x05\x06\x07\x08", 8, little_qword,
- 0x0807060504030281LL));
- BOOST_TEST(binary_test_delimited("\x01\x02\x03\x04\x05\x06\x07\x08\x00\x00",
- 10, little_qword, 0x0807060504030201LL, pad(10)));
-#endif
- }
-
- {
- BOOST_TEST(binary_test("\x01\x02", 2, little_word(0x0201)));
- BOOST_TEST(binary_test("\x01\x02\x03\x04", 4, little_dword(0x04030201)));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x08", 8,
- little_qword(0x0807060504030201LL)));
- BOOST_TEST(binary_test_delimited("\x01\x02\x03\x04\x05\x06\x07\x08\x00\x00",
- 10, little_qword(0x0807060504030201LL), pad(10)));
-#endif
- }
-
- { // test native endian binaries
- boost::optional<boost::uint8_t> v8;
- boost::optional<boost::uint16_t> v16;
- boost::optional<boost::uint32_t> v32;
-
-#ifdef BOOST_LITTLE_ENDIAN
-
- BOOST_TEST(!binary_test("", 1, byte_, v8));
- BOOST_TEST(!binary_test("", 2, word, v16));
- BOOST_TEST(!binary_test("", 4, dword, v32));
-#ifdef BOOST_HAS_LONG_LONG
- boost::optional<boost::uint64_t> v64;
- BOOST_TEST(!binary_test("", 8, qword, v64));
-#endif
-
-#else // BOOST_LITTLE_ENDIAN
-
- BOOST_TEST(!binary_test("", 1, byte_, v8));
- BOOST_TEST(!binary_test("", 2, word, v16));
- BOOST_TEST(!binary_test("", 4, dword, v32));
-#ifdef BOOST_HAS_LONG_LONG
- boost::optional<boost::uint64_t> v64;
- BOOST_TEST(!binary_test("", 8, qword, v64));
-#endif
-
-#endif
- }
-
- { // test optional attributes
-
-#ifdef BOOST_LITTLE_ENDIAN
- boost::optional<boost::uint8_t> v8 (0x01);
- BOOST_TEST(binary_test("\x01", 1, byte_, v8));
- boost::optional<boost::uint16_t> v16 (0x0201);
- BOOST_TEST(binary_test("\x01\x02", 2, word, v16));
- boost::optional<boost::uint32_t> v32 (0x04030201);
- BOOST_TEST(binary_test("\x01\x02\x03\x04", 4, dword, v32));
-#ifdef BOOST_HAS_LONG_LONG
- boost::optional<boost::uint64_t> v64 (0x0807060504030201LL);
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x08", 8, qword, v64));
-#endif
-
-#else // BOOST_LITTLE_ENDIAN
-
- boost::optional<boost::uint8_t> v8 (0x01);
- BOOST_TEST(binary_test("\x01", 1, byte_, v8));
- boost::optional<boost::uint16_t> v16 (0x0102);
- BOOST_TEST(binary_test("\x01\x02", 2, word, v16));
- boost::optional<boost::uint32_t> v32 (0x01020304);
- BOOST_TEST(binary_test("\x01\x02\x03\x04", 4, dword, v32));
-#ifdef BOOST_HAS_LONG_LONG
- boost::optional<boost::uint64_t> v64 (0x0102030405060708LL);
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x08", 8, qword, v64));
-#endif
-
-#endif
- }
-
-// we support Phoenix attributes only starting with V2.2
-#if SPIRIT_VERSION >= 0x2020
- { // test Phoenix expression attributes, only supported if
- // karma_phoenix_attributes.hpp is included
- namespace phoenix = boost::phoenix;
-
-#ifdef BOOST_LITTLE_ENDIAN
- BOOST_TEST(binary_test("\x01", 1, byte_, phoenix::val(0x01)));
- BOOST_TEST(binary_test("\x01\x02", 2, word, phoenix::val(0x0201)));
- BOOST_TEST(binary_test("\x01\x02\x03\x04", 4, dword,
- phoenix::val(0x04030201)));
-
- boost::uint8_t v8 (0x01);
- BOOST_TEST(binary_test("\x01", 1, byte_, phoenix::ref(v8)));
- BOOST_TEST(binary_test("\x02", 1, byte_, ++phoenix::ref(v8)));
-
- boost::uint16_t v16 (0x0201);
- BOOST_TEST(binary_test("\x01\x02", 2, word, phoenix::ref(v16)));
- BOOST_TEST(binary_test("\x02\x02", 2, word, ++phoenix::ref(v16)));
-
- boost::uint32_t v32 (0x04030201);
- BOOST_TEST(binary_test("\x01\x02\x03\x04", 4, dword, phoenix::ref(v32)));
- BOOST_TEST(binary_test("\x02\x02\x03\x04", 4, dword, ++phoenix::ref(v32)));
-
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x08", 8, qword,
- phoenix::val(0x0807060504030201LL)));
-
- boost::uint64_t v64 (0x0807060504030201LL);
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x08", 8, qword,
- phoenix::ref(v64)));
- BOOST_TEST(binary_test("\x02\x02\x03\x04\x05\x06\x07\x08", 8, qword,
- ++phoenix::ref(v64)));
-#endif
-
-#else // BOOST_LITTLE_ENDIAN
-
- BOOST_TEST(binary_test("\x01", 1, byte_, phoenix::val(0x01)));
- BOOST_TEST(binary_test("\x01\x02", 2, word, phoenix::val(0x0102)));
- BOOST_TEST(binary_test("\x01\x02\x03\x04", 4, dword,
- phoenix::val(0x01020304)));
-
- boost::uint8_t v8 (0x01);
- BOOST_TEST(binary_test("\x01", 1, byte_, phoenix::ref(v8)));
- BOOST_TEST(binary_test("\x02", 1, byte_, ++phoenix::ref(v8)));
-
- boost::uint16_t v16 (0x0102);
- BOOST_TEST(binary_test("\x01\x02", 2, word, phoenix::ref(v16)));
- BOOST_TEST(binary_test("\x01\x03", 2, word, ++phoenix::ref(v16)));
-
- boost::uint32_t v32 (0x01020304);
- BOOST_TEST(binary_test("\x01\x02\x03\x04", 4, dword, phoenix::ref(v32)));
- BOOST_TEST(binary_test("\x01\x02\x03\x05", 4, dword, ++phoenix::ref(v32)));
-
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x08", 8, qword,
- phoenix::val(0x0102030405060708LL)));
-
- boost::uint64_t v64 (0x0102030405060708LL);
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x08", 8, qword,
- phoenix::ref(v64)));
- BOOST_TEST(binary_test("\x01\x02\x03\x04\x05\x06\x07\x09", 8, qword,
- ++phoenix::ref(v64)));
-#endif
-
-#endif
- }
-#endif
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/karma/case_handling.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/case_handling.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,285 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// this file intentionally contains non-ascii characters
-// boostinspect:noascii
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <boost/spirit/include/karma_char.hpp>
-#include <boost/spirit/include/karma_string.hpp>
-#include <boost/spirit/include/karma_generate.hpp>
-#include <boost/spirit/include/karma_directive.hpp>
-
-#include "test.hpp"
-
-using namespace spirit_test;
-
-///////////////////////////////////////////////////////////////////////////////
-int
-main()
-{
- using namespace boost::spirit;
-
- {
- using namespace boost::spirit::ascii;
-
- BOOST_TEST(test("x", lower['X']));
- BOOST_TEST(test("x", lower['x']));
-
- BOOST_TEST(test("x", lower[char_], 'X'));
- BOOST_TEST(test("x", lower[char_], 'x'));
- BOOST_TEST(test("x", lower[char_('X')]));
- BOOST_TEST(test("x", lower[char_('x')]));
-
- BOOST_TEST(test(" ", lower[space]));
- BOOST_TEST(test("\t", lower[space], '\t'));
-
- BOOST_TEST(test("x", lower[lower['X']]));
- BOOST_TEST(test("x", lower[lower['x']]));
-
- BOOST_TEST(test("x", lower[lower[char_]], 'X'));
- BOOST_TEST(test("x", lower[lower[char_]], 'x'));
- BOOST_TEST(test("x", lower[lower[char_('X')]]));
- BOOST_TEST(test("x", lower[lower[char_('x')]]));
-
- BOOST_TEST(test(" ", lower[lower[space]]));
- BOOST_TEST(test("\t", lower[lower[space]], '\t'));
-
- BOOST_TEST(test("X", upper[lower['X']]));
- BOOST_TEST(test("X", upper[lower['x']]));
-
- BOOST_TEST(test("X", upper[lower[char_]], 'X'));
- BOOST_TEST(test("X", upper[lower[char_]], 'x'));
- BOOST_TEST(test("X", upper[lower[char_('X')]]));
- BOOST_TEST(test("X", upper[lower[char_('x')]]));
-
- BOOST_TEST(test(" ", upper[lower[space]]));
- BOOST_TEST(test("\t", upper[lower[space]], '\t'));
-
- BOOST_TEST(test("X", upper['X']));
- BOOST_TEST(test("X", upper['x']));
-
- BOOST_TEST(test("X", upper[char_], 'X'));
- BOOST_TEST(test("X", upper[char_], 'x'));
- BOOST_TEST(test("X", upper[char_('X')]));
- BOOST_TEST(test("X", upper[char_('x')]));
-
- BOOST_TEST(test(" ", upper[space]));
- BOOST_TEST(test("\t", upper[space], '\t'));
-
- BOOST_TEST(test("x", lower[upper['X']]));
- BOOST_TEST(test("x", lower[upper['x']]));
-
- BOOST_TEST(test("x", lower[upper[char_]], 'X'));
- BOOST_TEST(test("x", lower[upper[char_]], 'x'));
- BOOST_TEST(test("x", lower[upper[char_('X')]]));
- BOOST_TEST(test("x", lower[upper[char_('x')]]));
-
- BOOST_TEST(test(" ", lower[upper[space]]));
- BOOST_TEST(test("\t", lower[upper[space]], '\t'));
-
- BOOST_TEST(test("X", upper[upper['X']]));
- BOOST_TEST(test("X", upper[upper['x']]));
-
- BOOST_TEST(test("X", upper[upper[char_]], 'X'));
- BOOST_TEST(test("X", upper[upper[char_]], 'x'));
- BOOST_TEST(test("X", upper[upper[char_('X')]]));
- BOOST_TEST(test("X", upper[upper[char_('x')]]));
-
- BOOST_TEST(test(" ", upper[upper[space]]));
- BOOST_TEST(test("\t", upper[upper[space]], '\t'));
- }
-
- {
- using namespace boost::spirit::standard_wide;
-
- BOOST_TEST(test(L"x", lower[L'X']));
- BOOST_TEST(test(L"x", lower[L'x']));
-
- BOOST_TEST(test(L"x", lower[char_], L'X'));
- BOOST_TEST(test(L"x", lower[char_], L'x'));
- BOOST_TEST(test(L"x", lower[char_(L'X')]));
- BOOST_TEST(test(L"x", lower[char_(L'x')]));
-
- BOOST_TEST(test(L" ", lower[space]));
- BOOST_TEST(test(L"\t", lower[space], L'\t'));
-
- BOOST_TEST(test(L"x", lower[lower[L'X']]));
- BOOST_TEST(test(L"x", lower[lower[L'x']]));
-
- BOOST_TEST(test(L"x", lower[lower[char_]], L'X'));
- BOOST_TEST(test(L"x", lower[lower[char_]], L'x'));
- BOOST_TEST(test(L"x", lower[lower[char_(L'X')]]));
- BOOST_TEST(test(L"x", lower[lower[char_(L'x')]]));
-
- BOOST_TEST(test(L" ", lower[lower[space]]));
- BOOST_TEST(test(L"\t", lower[lower[space]], L'\t'));
-
- BOOST_TEST(test(L"X", upper[lower[L'X']]));
- BOOST_TEST(test(L"X", upper[lower[L'x']]));
-
- BOOST_TEST(test(L"X", upper[lower[char_]], L'X'));
- BOOST_TEST(test(L"X", upper[lower[char_]], L'x'));
- BOOST_TEST(test(L"X", upper[lower[char_(L'X')]]));
- BOOST_TEST(test(L"X", upper[lower[char_(L'x')]]));
-
- BOOST_TEST(test(L" ", upper[lower[space]]));
- BOOST_TEST(test(L"\t", upper[lower[space]], L'\t'));
-
- BOOST_TEST(test(L"X", upper[L'X']));
- BOOST_TEST(test(L"X", upper[L'x']));
-
- BOOST_TEST(test(L"X", upper[char_], L'X'));
- BOOST_TEST(test(L"X", upper[char_], L'x'));
- BOOST_TEST(test(L"X", upper[char_(L'X')]));
- BOOST_TEST(test(L"X", upper[char_(L'x')]));
-
- BOOST_TEST(test(L" ", upper[space]));
- BOOST_TEST(test(L"\t", upper[space], L'\t'));
-
- BOOST_TEST(test(L"x", lower[upper[L'X']]));
- BOOST_TEST(test(L"x", lower[upper[L'x']]));
-
- BOOST_TEST(test(L"x", lower[upper[char_]], L'X'));
- BOOST_TEST(test(L"x", lower[upper[char_]], L'x'));
- BOOST_TEST(test(L"x", lower[upper[char_(L'X')]]));
- BOOST_TEST(test(L"x", lower[upper[char_(L'x')]]));
-
- BOOST_TEST(test(L" ", lower[upper[space]]));
- BOOST_TEST(test(L"\t", lower[upper[space]], L'\t'));
-
- BOOST_TEST(test(L"X", upper[upper[L'X']]));
- BOOST_TEST(test(L"X", upper[upper[L'x']]));
-
- BOOST_TEST(test(L"X", upper[upper[char_]], L'X'));
- BOOST_TEST(test(L"X", upper[upper[char_]], L'x'));
- BOOST_TEST(test(L"X", upper[upper[char_(L'X')]]));
- BOOST_TEST(test(L"X", upper[upper[char_(L'x')]]));
-
- BOOST_TEST(test(L" ", upper[upper[space]]));
- BOOST_TEST(test(L"\t", upper[upper[space]], L'\t'));
- }
-
-// needed for VC7.1 only
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
-#pragma setlocale("german")
-#endif
- {
- using namespace boost::spirit::iso8859_1;
-
- BOOST_TEST(test("ä", lower['Ä']));
- BOOST_TEST(test("ä", lower['ä']));
-
- BOOST_TEST(test("Ä", upper['Ä']));
- BOOST_TEST(test("Ä", upper['ä']));
- }
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
-#pragma setlocale("")
-#endif
-
- {
- using namespace boost::spirit::ascii;
-
- BOOST_TEST(test("a1- ", lower["a1- "]));
- BOOST_TEST(test("a1- ", lower["a1- "]));
- BOOST_TEST(test("a1- ", lower["a1- "]));
- BOOST_TEST(test("a1- ", lower["A1- "]));
-
- BOOST_TEST(test("a1- ", lower[string], "a1- "));
- BOOST_TEST(test("a1- ", lower[string], "A1- "));
- BOOST_TEST(test("a1- ", lower[lit("a1- ")]));
- BOOST_TEST(test("a1- ", lower[lit("A1- ")]));
- BOOST_TEST(test("a1- ", lower[string("a1- ")]));
- BOOST_TEST(test("a1- ", lower[string("A1- ")]));
-
- BOOST_TEST(test("a1- ", lower[lower["a1- "]]));
- BOOST_TEST(test("a1- ", lower[lower["a1- "]]));
- BOOST_TEST(test("a1- ", lower[lower["a1- "]]));
- BOOST_TEST(test("a1- ", lower[lower["A1- "]]));
-
- BOOST_TEST(test("a1- ", lower[lower[string]], "a1- "));
- BOOST_TEST(test("a1- ", lower[lower[string]], "A1- "));
- BOOST_TEST(test("a1- ", lower[lower[lit("a1- ")]]));
- BOOST_TEST(test("a1- ", lower[lower[lit("A1- ")]]));
- BOOST_TEST(test("a1- ", lower[lower[string("a1- ")]]));
- BOOST_TEST(test("a1- ", lower[lower[string("A1- ")]]));
-
- BOOST_TEST(test("A1- ", upper[lower["a1- "]]));
- BOOST_TEST(test("A1- ", upper[lower["a1- "]]));
- BOOST_TEST(test("A1- ", upper[lower["a1- "]]));
- BOOST_TEST(test("A1- ", upper[lower["A1- "]]));
-
- BOOST_TEST(test("A1- ", upper[lower[string]], "a1- "));
- BOOST_TEST(test("A1- ", upper[lower[string]], "A1- "));
- BOOST_TEST(test("A1- ", upper[lower[lit("a1- ")]]));
- BOOST_TEST(test("A1- ", upper[lower[lit("A1- ")]]));
- BOOST_TEST(test("A1- ", upper[lower[string("a1- ")]]));
- BOOST_TEST(test("A1- ", upper[lower[string("A1- ")]]));
-
- BOOST_TEST(test("A1- ", upper["a1- "]));
- BOOST_TEST(test("A1- ", upper["a1- "]));
- BOOST_TEST(test("A1- ", upper["a1- "]));
- BOOST_TEST(test("A1- ", upper["A1- "]));
-
- BOOST_TEST(test("A1- ", upper[string], "a1- "));
- BOOST_TEST(test("A1- ", upper[string], "A1- "));
- BOOST_TEST(test("A1- ", upper[lit("a1- ")]));
- BOOST_TEST(test("A1- ", upper[lit("A1- ")]));
-
- BOOST_TEST(test("a1- ", lower[upper["a1- "]]));
- BOOST_TEST(test("a1- ", lower[upper["a1- "]]));
- BOOST_TEST(test("a1- ", lower[upper["a1- "]]));
- BOOST_TEST(test("a1- ", lower[upper["A1- "]]));
-
- BOOST_TEST(test("a1- ", lower[upper[string]], "a1- "));
- BOOST_TEST(test("a1- ", lower[upper[string]], "A1- "));
- BOOST_TEST(test("a1- ", lower[upper[lit("a1- ")]]));
- BOOST_TEST(test("a1- ", lower[upper[lit("A1- ")]]));
- BOOST_TEST(test("a1- ", lower[upper[string("a1- ")]]));
- BOOST_TEST(test("a1- ", lower[upper[string("A1- ")]]));
-
- BOOST_TEST(test("A1- ", upper[upper["a1- "]]));
- BOOST_TEST(test("A1- ", upper[upper["a1- "]]));
- BOOST_TEST(test("A1- ", upper[upper["a1- "]]));
- BOOST_TEST(test("A1- ", upper[upper["A1- "]]));
-
- BOOST_TEST(test("A1- ", upper[upper[string]], "a1- "));
- BOOST_TEST(test("A1- ", upper[upper[string]], "A1- "));
- BOOST_TEST(test("A1- ", upper[upper[lit("a1- ")]]));
- BOOST_TEST(test("A1- ", upper[upper[lit("A1- ")]]));
- BOOST_TEST(test("A1- ", upper[upper[string("a1- ")]]));
- BOOST_TEST(test("A1- ", upper[upper[string("A1- ")]]));
- }
-
-// needed for VC7.1 only
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
-#pragma setlocale("german")
-#endif
- {
- using namespace boost::spirit::iso8859_1;
-
- BOOST_TEST(test("ää", lower["Ää"]));
- BOOST_TEST(test("ää", lower["Ää"]));
-
- BOOST_TEST(test("ÄÄ", upper["Ää"]));
- BOOST_TEST(test("ÄÄ", upper["Ää"]));
- }
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
-#pragma setlocale("")
-#endif
-
- {
- using namespace boost::spirit::ascii;
- using boost::phoenix::val;
-
- BOOST_TEST(test("x", lower[val('X')]));
- BOOST_TEST(test("x", lower[val('x')]));
- }
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/karma/char.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/char.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,306 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//#define KARMA_FAIL_COMPILATION
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/karma_char.hpp>
-#include <boost/spirit/include/karma_generate.hpp>
-#include <boost/spirit/include/karma_action.hpp>
-#include <boost/spirit/include/karma_phoenix_attributes.hpp>
-
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_statement.hpp>
-
-#include "test.hpp"
-
-using namespace spirit_test;
-
-///////////////////////////////////////////////////////////////////////////////
-int
-main()
-{
- using namespace boost::spirit;
- using namespace boost::phoenix;
-
- {
- using namespace boost::spirit::ascii;
-
- BOOST_TEST(test("x", 'x'));
- BOOST_TEST(test(L"x", L'x'));
- BOOST_TEST(!test("x", 'y'));
- BOOST_TEST(!test(L"x", L'y'));
-
- BOOST_TEST(test("x", "x"));
- BOOST_TEST(test(L"x", L"x"));
- BOOST_TEST(!test("x", "y"));
- BOOST_TEST(!test(L"x", L"y"));
-
- BOOST_TEST(test("x", char_, 'x'));
- BOOST_TEST(test(L"x", char_, L'x'));
- BOOST_TEST(!test("x", char_, 'y'));
- BOOST_TEST(!test(L"x", char_, L'y'));
-
- BOOST_TEST(test("x", char_('x')));
- BOOST_TEST(!test("x", char_('y')));
-
- BOOST_TEST(test("x", char_('x'), 'x'));
- BOOST_TEST(!test("", char_('y'), 'x'));
-
- BOOST_TEST(test("x", char_("x")));
-
- BOOST_TEST(test("a", char_('a', 'z'), 'a'));
- BOOST_TEST(test("b", char_('a', 'z'), 'b'));
- BOOST_TEST(!test("", char_('a', 'z'), 'A'));
-
- BOOST_TEST(test("a", char_("a-z"), 'a'));
- BOOST_TEST(test("b", char_("a-z"), 'b'));
- BOOST_TEST(!test("", char_("a-z"), 'A'));
-
-#if defined(KARMA_FAIL_COMPILATION)
- BOOST_TEST(test("x", char_)); // anychar without a parameter doesn't make any sense
- BOOST_TEST(test("", char_('a', 'z'))); // char sets without attribute neither
-#endif
-
- BOOST_TEST(!test("", ~char_('x')));
-
- BOOST_TEST(!test("", ~char_('x'), 'x'));
- BOOST_TEST(test("x", ~char_('y'), 'x'));
-
- BOOST_TEST(!test("", ~char_("x")));
-
- BOOST_TEST(!test("", ~char_('a', 'z'), 'a'));
- BOOST_TEST(!test("", ~char_('a', 'z'), 'b'));
- BOOST_TEST(test("A", ~char_('a', 'z'), 'A'));
-
- BOOST_TEST(!test("", ~char_("a-z"), 'a'));
- BOOST_TEST(!test("", ~char_("a-z"), 'b'));
- BOOST_TEST(test("A", ~char_("a-z"), 'A'));
-
- BOOST_TEST(test("x", ~~char_('x')));
- BOOST_TEST(!test("x", ~~char_('y')));
-
- BOOST_TEST(test("x", ~~char_('x'), 'x'));
- BOOST_TEST(!test("", ~~char_('y'), 'x'));
-
- BOOST_TEST(test("x", ~~char_("x")));
-
- BOOST_TEST(test("a", ~~char_('a', 'z'), 'a'));
- BOOST_TEST(test("b", ~~char_('a', 'z'), 'b'));
- BOOST_TEST(!test("", ~~char_('a', 'z'), 'A'));
-
- BOOST_TEST(test("a", ~~char_("a-z"), 'a'));
- BOOST_TEST(test("b", ~~char_("a-z"), 'b'));
- BOOST_TEST(!test("", ~~char_("a-z"), 'A'));
- }
-
- {
- using namespace boost::spirit::standard_wide;
-
- BOOST_TEST(test(L"x", 'x'));
- BOOST_TEST(test(L"x", L'x'));
- BOOST_TEST(!test(L"x", 'y'));
- BOOST_TEST(!test(L"x", L'y'));
-
- BOOST_TEST(test(L"x", "x"));
- BOOST_TEST(test(L"x", L"x"));
- BOOST_TEST(!test(L"x", "y"));
- BOOST_TEST(!test(L"x", L"y"));
-
- BOOST_TEST(test(L"x", char_, 'x'));
- BOOST_TEST(test(L"x", char_, L'x'));
- BOOST_TEST(!test(L"x", char_, 'y'));
- BOOST_TEST(!test(L"x", char_, L'y'));
-
- BOOST_TEST(test(L"x", char_('x')));
- BOOST_TEST(test(L"x", char_(L'x')));
- BOOST_TEST(!test(L"x", char_('y')));
- BOOST_TEST(!test(L"x", char_(L'y')));
-
- BOOST_TEST(test(L"x", char_(L'x'), L'x'));
- BOOST_TEST(!test(L"", char_('y'), L'x'));
-
- BOOST_TEST(test(L"x", char_(L"x")));
-
- BOOST_TEST(test("a", char_("a", "z"), 'a'));
- BOOST_TEST(test(L"a", char_(L"a", L"z"), L'a'));
-
-#if defined(KARMA_FAIL_COMPILATION)
- BOOST_TEST(test("x", char_)); // anychar without a parameter doesn't make any sense
-#endif
-
- BOOST_TEST(!test(L"", ~char_('x')));
- BOOST_TEST(!test(L"", ~char_(L'x')));
-
- BOOST_TEST(!test(L"", ~char_(L'x'), L'x'));
- BOOST_TEST(test(L"x", ~char_('y'), L'x'));
-
- BOOST_TEST(!test(L"", ~char_(L"x")));
- }
-
- {
- using namespace boost::spirit::ascii;
-
- BOOST_TEST(test(" ", space));
- BOOST_TEST(test(L" ", space));
- BOOST_TEST(!test("\t", space));
- BOOST_TEST(!test(L"\t", space));
-
- BOOST_TEST(test(" ", space, ' '));
- BOOST_TEST(test(L" ", space, L' '));
- BOOST_TEST(test("\t", space, '\t'));
- BOOST_TEST(test(L"\t", space, L'\t'));
-
- BOOST_TEST(!test("", space, 'x'));
- BOOST_TEST(!test(L"", space, L'x'));
-
- BOOST_TEST(!test(" ", ~space, ' '));
- BOOST_TEST(!test(L" ", ~space, L' '));
-
- BOOST_TEST(test("x", ~space, 'x'));
- BOOST_TEST(test(L"x", ~space, L'x'));
- }
-
- {
- using namespace boost::spirit::standard_wide;
-
- BOOST_TEST(test(" ", space));
- BOOST_TEST(test(L" ", space));
- BOOST_TEST(!test("\t", space));
- BOOST_TEST(!test(L"\t", space));
-
- BOOST_TEST(test(" ", space, ' '));
- BOOST_TEST(test(L" ", space, L' '));
- BOOST_TEST(test("\t", space, '\t'));
- BOOST_TEST(test(L"\t", space, L'\t'));
-
- BOOST_TEST(!test("", space, 'x'));
- BOOST_TEST(!test(L"", space, L'x'));
- }
-
- {
- using namespace boost::spirit::ascii;
-
- BOOST_TEST(test_delimited("x ", 'x', ' '));
- BOOST_TEST(test_delimited(L"x ", L'x', L' '));
- BOOST_TEST(!test_delimited("x ", 'y', ' '));
- BOOST_TEST(!test_delimited(L"x ", L'y', L' '));
-
- BOOST_TEST(test_delimited("x ", 'x', ' '));
- BOOST_TEST(test_delimited(L"x ", L'x', L' '));
- BOOST_TEST(!test_delimited("x ", 'y', ' '));
- BOOST_TEST(!test_delimited(L"x ", L'y', L' '));
-
- BOOST_TEST(test_delimited("x ", char_, 'x', ' '));
- BOOST_TEST(test_delimited(L"x ", char_, L'x', L' '));
- BOOST_TEST(!test_delimited("x ", char_, 'y', ' '));
- BOOST_TEST(!test_delimited(L"x ", char_, L'y', L' '));
-
- BOOST_TEST(test_delimited("x ", char_('x'), ' '));
- BOOST_TEST(!test_delimited("x ", char_('y'), ' '));
-
- BOOST_TEST(test_delimited("x ", char_('x'), 'x', ' '));
- BOOST_TEST(!test_delimited("", char_('y'), 'x', ' '));
-
- BOOST_TEST(test_delimited("x ", char_("x"), ' '));
-
-#if defined(KARMA_FAIL_COMPILATION)
- BOOST_TEST(test_delimited("x ", char_, ' ')); // anychar without a parameter doesn't make any sense
-#endif
- }
-
- { // pre-delimiting
- {
- std::string generated;
- std::back_insert_iterator<std::string> it(generated);
- BOOST_TEST(karma::generate_delimited(it, '_', '^'
- , karma::delimit_flag::predelimit));
- BOOST_TEST(generated == "^_^");
- }
- {
- using namespace boost::spirit::standard_wide;
- std::basic_string<wchar_t> generated;
- std::back_insert_iterator<std::basic_string<wchar_t> > it(generated);
- BOOST_TEST(karma::generate_delimited(it, char_, L'.'
- , karma::delimit_flag::predelimit, L'x'));
- BOOST_TEST(generated == L".x.");
- }
- }
-
- // action tests
- {
- using namespace boost::spirit::ascii;
-
- BOOST_TEST(test("x", char_[_1 = val('x')]));
- BOOST_TEST(!test("x", char_[_1 = val('y')]));
- }
-
- { // lazy chars
- namespace ascii = boost::spirit::ascii;
- namespace wide = boost::spirit::standard_wide;
-
- using namespace boost::phoenix;
-
- BOOST_TEST((test("x", ascii::char_(val('x')))));
- BOOST_TEST((test(L"x", wide::char_(val(L'x')))));
-
- BOOST_TEST((test("x", ascii::char_(val('x')), 'x')));
- BOOST_TEST((test(L"x", wide::char_(val(L'x')), L'x')));
-
- BOOST_TEST((!test("", ascii::char_(val('y')), 'x')));
- BOOST_TEST((!test(L"", wide::char_(val(L'y')), L'x')));
- }
-
- // we can pass optionals as attributes to any generator
- {
- namespace ascii = boost::spirit::ascii;
- namespace wide = boost::spirit::standard_wide;
-
- boost::optional<char> v;
- boost::optional<wchar_t> w;
-
- BOOST_TEST(!test("", ascii::char_, v));
- BOOST_TEST(!test(L"", wide::char_, w));
-
- BOOST_TEST(!test("", ascii::char_('x'), v));
- BOOST_TEST(!test(L"", wide::char_(L'x'), w));
- }
-
- {
- namespace ascii = boost::spirit::ascii;
- namespace wide = boost::spirit::standard_wide;
-
- boost::optional<char> v ('x');
- boost::optional<wchar_t> w (L'x');
-
- BOOST_TEST(test("x", ascii::char_, v));
- BOOST_TEST(test(L"x", wide::char_, w));
- BOOST_TEST(test("x", ascii::char_('x'), v));
- BOOST_TEST(test(L"x", wide::char_(L'x'), w));
- BOOST_TEST(!test("", ascii::char_('y'), v));
- BOOST_TEST(!test(L"", wide::char_(L'y'), w));
- }
-
-// we support Phoenix attributes only starting with V2.2
-#if SPIRIT_VERSION >= 0x2020
- // yes, we can use phoenix expressions as attributes as well
- // but only if we include karma_phoenix_attributes.hpp
- {
- namespace ascii = boost::spirit::ascii;
- namespace phoenix = boost::phoenix;
-
- BOOST_TEST(test("x", ascii::char_, phoenix::val('x')));
-
- char c = 'x';
- BOOST_TEST(test("x", ascii::char_, phoenix::ref(c)));
- BOOST_TEST(test("y", ascii::char_, ++phoenix::ref(c)));
- }
-#endif
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/karma/int_numerics.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/int_numerics.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,390 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//#define KARMA_FAIL_COMPILATION
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/lexical_cast.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/mpl/for_each.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/bool.hpp>
-
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_statement.hpp>
-
-#include <boost/spirit/include/karma_char.hpp>
-#include <boost/spirit/include/karma_numeric.hpp>
-#include <boost/spirit/include/karma_directive.hpp>
-#include <boost/spirit/include/karma_action.hpp>
-#include <boost/spirit/include/karma_phoenix_attributes.hpp>
-
-#include <limits>
-#include "test.hpp"
-
-using namespace spirit_test;
-
-///////////////////////////////////////////////////////////////////////////////
-struct test_minmax
-{
- template <typename T>
- void operator()(T) const
- {
- using namespace boost::spirit;
- using namespace boost::phoenix;
-
- T minval = (std::numeric_limits<T>::min)();
- T maxval = (std::numeric_limits<T>::max)();
-
- std::string expected_minval = boost::lexical_cast<std::string>(minval);
- std::string expected_maxval = boost::lexical_cast<std::string>(maxval);
-
- // create a correct generator type from the given integer type
- typedef typename
- boost::mpl::if_<
- boost::mpl::bool_<std::numeric_limits<T>::is_signed>,
- karma::int_generator<T>,
- karma::uint_generator<T>
- >::type
- int_generator_type;
-
- int_generator_type const gen = int_generator_type();
-
- BOOST_TEST(test(expected_maxval, gen, maxval));
- BOOST_TEST(test(expected_minval, gen, minval));
- BOOST_TEST(test(expected_maxval, gen(maxval)));
- BOOST_TEST(test(expected_minval, gen(minval)));
- BOOST_TEST(test(expected_maxval, gen(maxval), maxval));
- BOOST_TEST(test(expected_minval, gen(minval), minval));
- BOOST_TEST(!test("", gen(maxval), maxval-1));
- BOOST_TEST(!test("", gen(minval), minval+1));
- BOOST_TEST(test(expected_maxval, lit(maxval)));
- BOOST_TEST(test(expected_minval, lit(minval)));
-
- BOOST_TEST(test_delimited(expected_maxval + " ", gen, maxval, char(' ')));
- BOOST_TEST(test_delimited(expected_minval + " ", gen, minval, char(' ')));
- BOOST_TEST(test_delimited(expected_maxval + " ", gen(maxval), char(' ')));
- BOOST_TEST(test_delimited(expected_minval + " ", gen(minval), char(' ')));
- BOOST_TEST(test_delimited(expected_maxval + " ", gen(maxval), maxval, char(' ')));
- BOOST_TEST(test_delimited(expected_minval + " ", gen(minval), minval, char(' ')));
- BOOST_TEST(!test_delimited("", gen(maxval), maxval-1, char(' ')));
- BOOST_TEST(!test_delimited("", gen(minval), minval+1, char(' ')));
- BOOST_TEST(test_delimited(expected_maxval + " ", lit(maxval), char(' ')));
- BOOST_TEST(test_delimited(expected_minval + " ", lit(minval), char(' ')));
-
- // action tests
- BOOST_TEST(test(expected_maxval, gen[_1 = val(maxval)]));
- BOOST_TEST(test(expected_minval, gen[_1 = val(minval)]));
-
- // optional tests
- boost::optional<T> optmin, optmax(maxval);
-
- BOOST_TEST(!test("", gen, optmin));
- BOOST_TEST(!test("", gen(minval), optmin));
-
- optmin = minval;
- BOOST_TEST(test(expected_minval, gen, optmin));
- BOOST_TEST(test(expected_maxval, gen, optmax));
- BOOST_TEST(test(expected_minval, gen(minval), optmin));
- BOOST_TEST(test(expected_maxval, gen(maxval), optmax));
-
-// we support Phoenix attributes only starting with V2.2
-#if SPIRIT_VERSION >= 0x2020
- // Phoenix expression tests (only supported while including
- // karma_phoenix_attributes.hpp
- namespace phoenix = boost::phoenix;
-
- BOOST_TEST(test("1", gen, phoenix::val(1)));
-
- T val = 1;
- BOOST_TEST(test("1", gen, phoenix::ref(val)));
- BOOST_TEST(test("2", gen, ++phoenix::ref(val)));
-#endif
- }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-int
-main()
-{
- using namespace boost::spirit;
-
- {
- using namespace boost::spirit::ascii;
-
- ///////////////////////////////////////////////////////////////////////
- // this is currently ambiguous with character literals
-// BOOST_TEST(test("0", 0));
-// BOOST_TEST(test("123", 123));
-// BOOST_TEST(test("-123", -123));
-
- BOOST_TEST(test("0", int_, 0));
- BOOST_TEST(test("123", int_, 123));
- BOOST_TEST(test("-123", int_, -123));
-
- BOOST_TEST(test_delimited("0 ", int_, 0, char_(' ')));
- BOOST_TEST(test_delimited("123 ", int_, 123, char_(' ')));
- BOOST_TEST(test_delimited("-123 ", int_, -123, char_(' ')));
-
- BOOST_TEST(test("0", lower[int_], 0));
- BOOST_TEST(test("123", lower[int_], 123));
- BOOST_TEST(test("-123", lower[int_], -123));
-
- BOOST_TEST(test_delimited("0 ", lower[int_], 0, char_(' ')));
- BOOST_TEST(test_delimited("123 ", lower[int_], 123, char_(' ')));
- BOOST_TEST(test_delimited("-123 ", lower[int_], -123, char_(' ')));
-
- BOOST_TEST(test("0", upper[int_], 0));
- BOOST_TEST(test("123", upper[int_], 123));
- BOOST_TEST(test("-123", upper[int_], -123));
-
- BOOST_TEST(test_delimited("0 ", upper[int_], 0, char_(' ')));
- BOOST_TEST(test_delimited("123 ", upper[int_], 123, char_(' ')));
- BOOST_TEST(test_delimited("-123 ", upper[int_], -123, char_(' ')));
-
- ///////////////////////////////////////////////////////////////////////
- BOOST_TEST(test("0", int_(0)));
- BOOST_TEST(test("123", int_(123)));
- BOOST_TEST(test("-123", int_(-123)));
-
- BOOST_TEST(test_delimited("0 ", int_(0), char_(' ')));
- BOOST_TEST(test_delimited("123 ", int_(123), char_(' ')));
- BOOST_TEST(test_delimited("-123 ", int_(-123), char_(' ')));
-
- BOOST_TEST(test("0", lower[int_(0)]));
- BOOST_TEST(test("123", lower[int_(123)]));
- BOOST_TEST(test("-123", lower[int_(-123)]));
-
- BOOST_TEST(test_delimited("0 ", lower[int_(0)], char_(' ')));
- BOOST_TEST(test_delimited("123 ", lower[int_(123)], char_(' ')));
- BOOST_TEST(test_delimited("-123 ", lower[int_(-123)], char_(' ')));
-
- BOOST_TEST(test("0", upper[int_(0)]));
- BOOST_TEST(test("123", upper[int_(123)]));
- BOOST_TEST(test("-123", upper[int_(-123)]));
-
- BOOST_TEST(test_delimited("0 ", upper[int_(0)], char_(' ')));
- BOOST_TEST(test_delimited("123 ", upper[int_(123)], char_(' ')));
- BOOST_TEST(test_delimited("-123 ", upper[int_(-123)], char_(' ')));
- }
-
- { // literals, make sure there are no ambiguities
- BOOST_TEST(test("0", lit(short(0))));
- BOOST_TEST(test("0", lit(0)));
- BOOST_TEST(test("0", lit(0L)));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(test("0", lit(0LL)));
-#endif
-
- BOOST_TEST(test("0", lit((unsigned short)0)));
- BOOST_TEST(test("0", lit(0U)));
- BOOST_TEST(test("0", lit(0UL)));
-#ifdef BOOST_HAS_LONG_LONG
- BOOST_TEST(test("0", lit(0ULL)));
-#endif
-
- BOOST_TEST(test("a", lit('a')));
- BOOST_TEST(test("a", 'a'));
- BOOST_TEST(test(L"a", L'a'));
- }
-
- { // lazy numerics
- using namespace boost::phoenix;
-
- BOOST_TEST(test("0", int_(val(0))));
- BOOST_TEST(test("123", int_(val(123))));
- BOOST_TEST(test("-123", int_(val(-123))));
-
- int i1 = 0, i2 = 123, i3 = -123;
- BOOST_TEST(test("0", int_(ref(i1))));
- BOOST_TEST(test("123", int_(ref(i2))));
- BOOST_TEST(test("-123", int_(ref(i3))));
- }
-
- {
- using namespace boost::spirit::ascii;
-
- karma::int_generator<int, 10, true> const signed_int =
- karma::int_generator<int, 10, true>();
-
- ///////////////////////////////////////////////////////////////////////
- BOOST_TEST(test(" 0", signed_int, 0));
- BOOST_TEST(test("+123", signed_int, 123));
- BOOST_TEST(test("-123", signed_int, -123));
-
- BOOST_TEST(test_delimited(" 0 ", signed_int, 0, char_(' ')));
- BOOST_TEST(test_delimited("+123 ", signed_int, 123, char_(' ')));
- BOOST_TEST(test_delimited("-123 ", signed_int, -123, char_(' ')));
-
- BOOST_TEST(test(" 0", lower[signed_int], 0));
- BOOST_TEST(test("+123", lower[signed_int], 123));
- BOOST_TEST(test("-123", lower[signed_int], -123));
-
- BOOST_TEST(test_delimited(" 0 ", lower[signed_int], 0, char_(' ')));
- BOOST_TEST(test_delimited("+123 ", lower[signed_int], 123, char_(' ')));
- BOOST_TEST(test_delimited("-123 ", lower[signed_int], -123, char_(' ')));
-
- BOOST_TEST(test(" 0", upper[signed_int], 0));
- BOOST_TEST(test("+123", upper[signed_int], 123));
- BOOST_TEST(test("-123", upper[signed_int], -123));
-
- BOOST_TEST(test_delimited(" 0 ", upper[signed_int], 0, char_(' ')));
- BOOST_TEST(test_delimited("+123 ", upper[signed_int], 123, char_(' ')));
- BOOST_TEST(test_delimited("-123 ", upper[signed_int], -123, char_(' ')));
-
- ///////////////////////////////////////////////////////////////////////
- BOOST_TEST(test(" 0", signed_int(0)));
- BOOST_TEST(test("+123", signed_int(123)));
- BOOST_TEST(test("-123", signed_int(-123)));
-
- BOOST_TEST(test_delimited(" 0 ", signed_int(0), char_(' ')));
- BOOST_TEST(test_delimited("+123 ", signed_int(123), char_(' ')));
- BOOST_TEST(test_delimited("-123 ", signed_int(-123), char_(' ')));
-
- BOOST_TEST(test(" 0", lower[signed_int(0)]));
- BOOST_TEST(test("+123", lower[signed_int(123)]));
- BOOST_TEST(test("-123", lower[signed_int(-123)]));
-
- BOOST_TEST(test_delimited(" 0 ", lower[signed_int(0)], char_(' ')));
- BOOST_TEST(test_delimited("+123 ", lower[signed_int(123)], char_(' ')));
- BOOST_TEST(test_delimited("-123 ", lower[signed_int(-123)], char_(' ')));
-
- BOOST_TEST(test(" 0", upper[signed_int(0)]));
- BOOST_TEST(test("+123", upper[signed_int(123)]));
- BOOST_TEST(test("-123", upper[signed_int(-123)]));
-
- BOOST_TEST(test_delimited(" 0 ", upper[signed_int(0)], char_(' ')));
- BOOST_TEST(test_delimited("+123 ", upper[signed_int(123)], char_(' ')));
- BOOST_TEST(test_delimited("-123 ", upper[signed_int(-123)], char_(' ')));
-
- using namespace boost::phoenix;
-
- BOOST_TEST(test(" 0", signed_int(val(0))));
- BOOST_TEST(test("+123", signed_int(val(123))));
- BOOST_TEST(test("-123", signed_int(val(-123))));
-
- int i1 = 0, i2 = 123, i3 = -123;
- BOOST_TEST(test(" 0", signed_int(ref(i1))));
- BOOST_TEST(test("+123", signed_int(ref(i2))));
- BOOST_TEST(test("-123", signed_int(ref(i3))));
- }
-
- {
- ///////////////////////////////////////////////////////////////////////
- using namespace boost::spirit::ascii;
-
- BOOST_TEST(test("1234", uint_, 1234));
- BOOST_TEST(test("ff", hex, 0xff));
- BOOST_TEST(test("1234", oct, 01234));
- BOOST_TEST(test("11110000", bin, 0xf0));
-
- BOOST_TEST(test_delimited("1234 ", uint_, 1234, char_(' ')));
- BOOST_TEST(test_delimited("ff ", hex, 0xff, char_(' ')));
- BOOST_TEST(test_delimited("1234 ", oct, 01234, char_(' ')));
- BOOST_TEST(test_delimited("11110000 ", bin, 0xf0, char_(' ')));
-
- // test unsigned generator with signed integral value
- BOOST_TEST(test("ff", hex, (char)0xff));
- BOOST_TEST(test_delimited("ff ", hex, (char)0xff, char_(' ')));
-
- BOOST_TEST(test("1234", lower[uint_], 1234));
- BOOST_TEST(test("ff", lower[hex], 0xff));
- BOOST_TEST(test("1234", lower[oct], 01234));
- BOOST_TEST(test("11110000", lower[bin], 0xf0));
-
- BOOST_TEST(test_delimited("1234 ", lower[uint_], 1234, char_(' ')));
- BOOST_TEST(test_delimited("ff ", lower[hex], 0xff, char_(' ')));
- BOOST_TEST(test_delimited("1234 ", lower[oct], 01234, char_(' ')));
- BOOST_TEST(test_delimited("11110000 ", lower[bin], 0xf0, char_(' ')));
-
- BOOST_TEST(test("1234", upper[uint_], 1234));
- BOOST_TEST(test("FF", upper[hex], 0xff));
- BOOST_TEST(test("1234", upper[oct], 01234));
- BOOST_TEST(test("11110000", upper[bin], 0xf0));
-
- BOOST_TEST(test_delimited("1234 ", upper[uint_], 1234, char_(' ')));
- BOOST_TEST(test_delimited("FF ", upper[hex], 0xff, char_(' ')));
- BOOST_TEST(test_delimited("1234 ", upper[oct], 01234, char_(' ')));
- BOOST_TEST(test_delimited("11110000 ", upper[bin], 0xf0, char_(' ')));
-
- // no generator transformation should occur for uint_'s
- BOOST_TEST(test("1234", upper[upper[uint_]], 1234));
- BOOST_TEST(test("1234", upper[lower[uint_]], 1234));
- BOOST_TEST(test("1234", lower[upper[uint_]], 1234));
- BOOST_TEST(test("1234", lower[lower[uint_]], 1234));
-
- BOOST_TEST(test_delimited("1234 ", upper[upper[uint_]], 1234, char_(' ')));
- BOOST_TEST(test_delimited("1234 ", upper[lower[uint_]], 1234, char_(' ')));
- BOOST_TEST(test_delimited("1234 ", lower[upper[uint_]], 1234, char_(' ')));
- BOOST_TEST(test_delimited("1234 ", lower[lower[uint_]], 1234, char_(' ')));
-
- BOOST_TEST(test("FF", upper[upper[hex]], 0xff));
- BOOST_TEST(test("FF", upper[lower[hex]], 0xff));
- BOOST_TEST(test("ff", lower[upper[hex]], 0xff));
- BOOST_TEST(test("ff", lower[lower[hex]], 0xff));
-
- BOOST_TEST(test_delimited("FF ", upper[upper[hex]], 0xff, char_(' ')));
- BOOST_TEST(test_delimited("FF ", upper[lower[hex]], 0xff, char_(' ')));
- BOOST_TEST(test_delimited("ff ", lower[upper[hex]], 0xff, char_(' ')));
- BOOST_TEST(test_delimited("ff ", lower[lower[hex]], 0xff, char_(' ')));
-
- ///////////////////////////////////////////////////////////////////////
- BOOST_TEST(test("1234", uint_(1234)));
- BOOST_TEST(test("ff", hex(0xff)));
- BOOST_TEST(test("1234", oct(01234)));
- BOOST_TEST(test("11110000", bin(0xf0)));
-
- BOOST_TEST(test_delimited("1234 ", uint_(1234), char_(' ')));
- BOOST_TEST(test_delimited("ff ", hex(0xff), char_(' ')));
- BOOST_TEST(test_delimited("1234 ", oct(01234), char_(' ')));
- BOOST_TEST(test_delimited("11110000 ", bin(0xf0), char_(' ')));
-
- BOOST_TEST(test("1234", lower[uint_(1234)]));
- BOOST_TEST(test("ff", lower[hex(0xff)]));
- BOOST_TEST(test("1234", lower[oct(01234)]));
- BOOST_TEST(test("11110000", lower[bin(0xf0)]));
-
- BOOST_TEST(test_delimited("1234 ", lower[uint_(1234)], char_(' ')));
- BOOST_TEST(test_delimited("ff ", lower[hex(0xff)], char_(' ')));
- BOOST_TEST(test_delimited("1234 ", lower[oct(01234)], char_(' ')));
- BOOST_TEST(test_delimited("11110000 ", lower[bin(0xf0)], char_(' ')));
-
- BOOST_TEST(test("1234", upper[uint_(1234)]));
- BOOST_TEST(test("FF", upper[hex(0xff)]));
- BOOST_TEST(test("1234", upper[oct(01234)]));
- BOOST_TEST(test("11110000", upper[bin(0xf0)]));
-
- BOOST_TEST(test_delimited("1234 ", upper[uint_(1234)], char_(' ')));
- BOOST_TEST(test_delimited("FF ", upper[hex(0xff)], char_(' ')));
- BOOST_TEST(test_delimited("1234 ", upper[oct(01234)], char_(' ')));
- BOOST_TEST(test_delimited("11110000 ", upper[bin(0xf0)], char_(' ')));
-
- BOOST_TEST(test("FF", upper[upper[hex(0xff)]]));
- BOOST_TEST(test("FF", upper[lower[hex(0xff)]]));
- BOOST_TEST(test("ff", lower[upper[hex(0xff)]]));
- BOOST_TEST(test("ff", lower[lower[hex(0xff)]]));
-
- BOOST_TEST(test_delimited("FF ", upper[upper[hex(0xff)]], char_(' ')));
- BOOST_TEST(test_delimited("FF ", upper[lower[hex(0xff)]], char_(' ')));
- BOOST_TEST(test_delimited("ff ", lower[upper[hex(0xff)]], char_(' ')));
- BOOST_TEST(test_delimited("ff ", lower[lower[hex(0xff)]], char_(' ')));
- }
-
-// test boundary values
- typedef boost::mpl::vector<
-#ifdef BOOST_HAS_LONG_LONG
- boost::long_long_type, boost::ulong_long_type,
-#endif
- short, unsigned short,
- int, unsigned int,
- long, unsigned long
- > integer_types;
- boost::mpl::for_each<integer_types>(test_minmax());
-
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/karma/karma_optional_double.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/karma_optional_double.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,52 +0,0 @@
-// Copyright (c) 2010 Olaf Peter
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/spirit/include/karma.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-namespace client
-{
- namespace karma = boost::spirit::karma;
-
- template <typename OutputIterator>
- struct grammar
- : karma::grammar<OutputIterator, boost::optional<double>()>
- {
- grammar()
- : grammar::base_type(start)
- {
- using karma::double_;
-
- u = double_ << "U";
- start = ( !double_ << "NA" ) | u;
-
- start.name("start");
- u.name("u");
- }
-
- karma::rule<OutputIterator, double()> u;
- karma::rule<OutputIterator, boost::optional<double>()> start;
- };
-}
-
-int main()
-{
- namespace karma = boost::spirit::karma;
-
- typedef std::back_insert_iterator<std::string> sink_type;
-
- boost::optional<double> d1, d2;
- d2 = 1.0;
-
- std::string generated1, generated2;
- client::grammar<sink_type> g;
-
- BOOST_TEST(karma::generate(sink_type(generated1), g, d1) && generated1 == "NA");
- BOOST_TEST(karma::generate(sink_type(generated2), g, d2) && generated2 == "1.0U");
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/karma/pattern.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/pattern.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,215 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/karma_operator.hpp>
-#include <boost/spirit/include/karma_char.hpp>
-#include <boost/spirit/include/karma_auxiliary.hpp>
-#include <boost/spirit/include/karma_string.hpp>
-#include <boost/spirit/include/karma_numeric.hpp>
-#include <boost/spirit/include/karma_nonterminal.hpp>
-#include <boost/spirit/include/karma_action.hpp>
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_statement.hpp>
-#include <boost/spirit/include/phoenix_fusion.hpp>
-
-#include "test.hpp"
-
-using namespace spirit_test;
-
-///////////////////////////////////////////////////////////////////////////////
-int main()
-{
- using namespace boost;
- using namespace boost::spirit;
- using namespace boost::spirit::ascii;
-
- typedef spirit_test::output_iterator<char>::type outiter_type;
-
- // test rule parameter propagation
- {
- using boost::phoenix::at_c;
-
- karma::rule<outiter_type, fusion::vector<char, int, double>()> start;
- fusion::vector<char, int, double> vec('a', 10, 12.4);
-
- start %= char_ << int_ << double_;
- BOOST_TEST(test("a1012.4", start, vec));
-
- karma::rule<outiter_type, char()> a;
- karma::rule<outiter_type, int()> b;
- karma::rule<outiter_type, double()> c;
-
- a %= char_ << eps;
- b %= int_;
- c %= double_;
- start = a[_1 = at_c<0>(_r0)] << b[_1 = at_c<1>(_r0)] << c[_1 = at_c<2>(_r0)];
- BOOST_TEST(test("a1012.4", start, vec));
-
- start = (a << b << c)[_1 = at_c<0>(_r0), _2 = at_c<1>(_r0), _3 = at_c<2>(_r0)];
- BOOST_TEST(test("a1012.4", start, vec));
-
- start = a << b << c;
- BOOST_TEST(test("a1012.4", start, vec));
-
- start %= a << b << c;
- BOOST_TEST(test("a1012.4", start, vec));
- }
-
- {
- using boost::phoenix::at_c;
-
- karma::rule<outiter_type, space_type, fusion::vector<char, int, double>()> start;
- fusion::vector<char, int, double> vec('a', 10, 12.4);
-
- start %= char_ << int_ << double_;
- BOOST_TEST(test_delimited("a 10 12.4 ", start, vec, space));
-
- karma::rule<outiter_type, space_type, char()> a;
- karma::rule<outiter_type, space_type, int()> b;
- karma::rule<outiter_type, space_type, double()> c;
-
- a %= char_ << eps;
- b %= int_;
- c %= double_;
- start = a[_1 = at_c<0>(_r0)] << b[_1 = at_c<1>(_r0)] << c[_1 = at_c<2>(_r0)];
- BOOST_TEST(test_delimited("a 10 12.4 ", start, vec, space));
-
- start = (a << b << c)[_1 = at_c<0>(_r0), _2 = at_c<1>(_r0), _3 = at_c<2>(_r0)];
- BOOST_TEST(test_delimited("a 10 12.4 ", start, vec, space));
-
- start = a << b << c;
- BOOST_TEST(test_delimited("a 10 12.4 ", start, vec, space));
-
- start %= a << b << c;
- BOOST_TEST(test_delimited("a 10 12.4 ", start, vec, space));
- }
-
- // test direct initalization
- {
- using boost::phoenix::at_c;
-
- fusion::vector<char, int, double> vec('a', 10, 12.4);
- karma::rule<outiter_type, space_type, fusion::vector<char, int, double>()>
- start = char_ << int_ << double_;;
-
- BOOST_TEST(test_delimited("a 10 12.4 ", start, vec, space));
-
- karma::rule<outiter_type, space_type, char()> a = char_ << eps;
- karma::rule<outiter_type, space_type, int()> b = int_;
- karma::rule<outiter_type, space_type, double()> c = double_;
-
- start = a[_1 = at_c<0>(_r0)] << b[_1 = at_c<1>(_r0)] << c[_1 = at_c<2>(_r0)];
- BOOST_TEST(test_delimited("a 10 12.4 ", start, vec, space));
- }
-
- // locals test
- {
- karma::rule<outiter_type, locals<std::string> > start;
-
- start = string[_1 = "abc", _a = _1] << int_[_1 = 10] << string[_1 = _a];
- BOOST_TEST(test("abc10abc", start));
- }
-
- {
- karma::rule<outiter_type, space_type, locals<std::string> > start;
-
- start = string[_1 = "abc", _a = _1] << int_[_1 = 10] << string[_1 = _a];
- BOOST_TEST(test_delimited("abc 10 abc ", start, space));
- }
-
- // alias tests
- {
- typedef variant<char, int, double> var_type;
-
- karma::rule<outiter_type, var_type()> d, start;
-
- d = start.alias(); // d will always track start
-
- start = (char_ | int_ | double_)[_1 = _val];
-
- var_type v ('a');
- BOOST_TEST(test("a", d, v));
- v = 10;
- BOOST_TEST(test("10", d, v));
- v = 12.4;
- BOOST_TEST(test("12.4", d, v));
- }
-
- {
- typedef variant<char, int, double> var_type;
-
- karma::rule<outiter_type, space_type, var_type()> d, start;
-
- d = start.alias(); // d will always track start
-
- start = (char_ | int_ | double_)[_1 = _val];
-
- var_type v ('a');
- BOOST_TEST(test_delimited("a ", d, v, space));
- v = 10;
- BOOST_TEST(test_delimited("10 ", d, v, space));
- v = 12.4;
- BOOST_TEST(test_delimited("12.4 ", d, v, space));
- }
-
- {
- typedef variant<char, int, double> var_type;
-
- karma::rule<outiter_type, var_type()> d, start;
-
- d = start.alias(); // d will always track start
-
- start %= char_ | int_ | double_;
-
- var_type v ('a');
- BOOST_TEST(test("a", d, v));
- v = 10;
- BOOST_TEST(test("10", d, v));
- v = 12.4;
- BOOST_TEST(test("12.4", d, v));
-
- start = char_ | int_ | double_;
-
- v = 'a';
- BOOST_TEST(test("a", d, v));
- v = 10;
- BOOST_TEST(test("10", d, v));
- v = 12.4;
- BOOST_TEST(test("12.4", d, v));
- }
-
- {
- typedef variant<char, int, double> var_type;
-
- karma::rule<outiter_type, space_type, var_type()> d, start;
-
- d = start.alias(); // d will always track start
-
- start %= char_ | int_ | double_;
-
- var_type v ('a');
- BOOST_TEST(test_delimited("a ", d, v, space));
- v = 10;
- BOOST_TEST(test_delimited("10 ", d, v, space));
- v = 12.4;
- BOOST_TEST(test_delimited("12.4 ", d, v, space));
-
- start = char_ | int_ | double_;
-
- v = 'a';
- BOOST_TEST(test_delimited("a ", d, v, space));
- v = 10;
- BOOST_TEST(test_delimited("10 ", d, v, space));
- v = 12.4;
- BOOST_TEST(test_delimited("12.4 ", d, v, space));
- }
-
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/karma/real_numerics.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/real_numerics.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,560 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//#define KARMA_FAIL_COMPILATION
-
-#include <boost/version.hpp>
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/math/concepts/real_concept.hpp>
-
-#include <boost/spirit/include/karma_char.hpp>
-#include <boost/spirit/include/karma_numeric.hpp>
-#include <boost/spirit/include/karma_generate.hpp>
-#include <boost/spirit/include/karma_directive.hpp>
-#include <boost/spirit/include/karma_phoenix_attributes.hpp>
-
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_statement.hpp>
-
-#include <limits>
-#include "test.hpp"
-
-using namespace spirit_test;
-
-///////////////////////////////////////////////////////////////////////////////
-// policy for real_generator, which forces the scientific notation
-template <typename T>
-struct scientific_policy : boost::spirit::karma::real_policies<T>
-{
- // we want the numbers always to be in scientific format
- typedef boost::spirit::karma::real_policies<T> base_type;
- static int floatfield(T) { return base_type::fmtflags::scientific; }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// policy for real_generator, which forces the fixed notation
-template <typename T>
-struct fixed_policy : boost::spirit::karma::real_policies<T>
-{
- typedef boost::spirit::karma::real_policies<T> base_type;
-
- // we want the numbers always to be in scientific format
- static int floatfield(T) { return base_type::fmtflags::fixed; }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// policy for real_generator, which forces to output trailing zeros in the
-// fractional part
-template <typename T>
-struct trailing_zeros_policy : boost::spirit::karma::real_policies<T> // 4 digits
-{
- // we want the numbers always to contain trailing zeros up to 4 digits in
- // the fractional part
- static bool trailing_zeros(T) { return true; }
-
- // we want to generate up to 4 fractional digits
- static unsigned int precision(T) { return 4; }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// policy for real_generator, which forces the sign to be generated
-template <typename T>
-struct signed_policy : boost::spirit::karma::real_policies<T>
-{
- // we want to always have a sign generated
- static bool force_sign(T)
- {
- return true;
- }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// policy for real_generator, which forces to output trailing zeros in the
-// fractional part
-template <typename T>
-struct bordercase_policy : boost::spirit::karma::real_policies<T>
-{
- // we want to generate up to the maximum significant amount of fractional
- // digits
- static unsigned int precision(T)
- {
- return std::numeric_limits<T>::digits10 + 1;
- }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// policy for real_generator, which forces to output trailing zeros in the
-// fractional part
-template <typename T>
-struct statefull_policy : boost::spirit::karma::real_policies<T>
-{
- statefull_policy(int precision = 4, bool trailingzeros = false)
- : precision_(precision), trailingzeros_(trailingzeros)
- {}
-
- // we want to generate up to the maximum significant amount of fractional
- // digits
- unsigned int precision(T) const
- {
- return precision_;
- }
-
- bool trailing_zeros(T) const
- {
- return trailingzeros_;
- }
-
- int precision_;
- bool trailingzeros_;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-int main()
-{
- using namespace boost::spirit;
-
- {
- ///////////////////////////////////////////////////////////////////////
- // use the default real_policies
- BOOST_TEST(test("0.0", double_, 0.0));
- BOOST_TEST(test("1.0", double_, 1.0));
- BOOST_TEST(test("1.0", double_, 1.0001));
- BOOST_TEST(test("1.001", double_, 1.001));
- BOOST_TEST(test("1.01", double_, 1.010));
- BOOST_TEST(test("1.1", double_, 1.100));
-
- BOOST_TEST(test("1.234e-04", double_, 0.00012345));
- BOOST_TEST(test("0.001", double_, 0.0012345));
- BOOST_TEST(test("0.012", double_, 0.012345));
- BOOST_TEST(test("0.123", double_, 0.12345));
- BOOST_TEST(test("1.234", double_, 1.2345));
- BOOST_TEST(test("12.346", double_, 12.346));
- BOOST_TEST(test("123.46", double_, 123.46));
- BOOST_TEST(test("1234.5", double_, 1234.5));
- BOOST_TEST(test("12342.0", double_, 12342.));
- BOOST_TEST(test("1.234e05", double_, 123420.));
-
- BOOST_TEST(test("-1.0", double_, -1.0));
- BOOST_TEST(test("-1.234", double_, -1.2345));
- BOOST_TEST(test("-1.235", double_, -1.2346));
- BOOST_TEST(test("-1234.2", double_, -1234.2));
-
- BOOST_TEST(test("1.0", double_(1.0)));
- BOOST_TEST(test("1.0", double_(1.0001)));
- BOOST_TEST(test("1.001", double_(1.001)));
- BOOST_TEST(test("1.01", double_(1.010)));
- BOOST_TEST(test("1.1", double_(1.100)));
-
- BOOST_TEST(test("1.234e-04", double_(0.00012345)));
- BOOST_TEST(test("0.001", double_(0.0012345)));
- BOOST_TEST(test("0.012", double_(0.012345)));
- BOOST_TEST(test("0.123", double_(0.12345)));
- BOOST_TEST(test("1.234", double_(1.2345)));
- BOOST_TEST(test("12.346", double_(12.346)));
- BOOST_TEST(test("123.46", double_(123.46)));
- BOOST_TEST(test("1234.5", double_(1234.5)));
- BOOST_TEST(test("12342.0", double_(12342.)));
- BOOST_TEST(test("1.234e05", double_(123420.)));
- }
-
- {
- ///////////////////////////////////////////////////////////////////////
- // test NaN and Inf
- BOOST_TEST(test("nan", double_, std::numeric_limits<double>::quiet_NaN()));
- BOOST_TEST(test("-nan", double_, -std::numeric_limits<double>::quiet_NaN()));
- BOOST_TEST(test("inf", double_, std::numeric_limits<double>::infinity()));
- BOOST_TEST(test("-inf", double_, -std::numeric_limits<double>::infinity()));
-
- typedef karma::real_generator<double, signed_policy<double> > signed_type;
- signed_type const signed_ = signed_type();
-
- BOOST_TEST(test("+nan", signed_, std::numeric_limits<double>::quiet_NaN()));
- BOOST_TEST(test("-nan", signed_, -std::numeric_limits<double>::quiet_NaN()));
- BOOST_TEST(test("+inf", signed_, std::numeric_limits<double>::infinity()));
- BOOST_TEST(test("-inf", signed_, -std::numeric_limits<double>::infinity()));
- BOOST_TEST(test(" 0.0", signed_, 0.0));
-
- BOOST_TEST(test("+nan", signed_(std::numeric_limits<double>::quiet_NaN())));
- BOOST_TEST(test("-nan", signed_(-std::numeric_limits<double>::quiet_NaN())));
- BOOST_TEST(test("+inf", signed_(std::numeric_limits<double>::infinity())));
- BOOST_TEST(test("-inf", signed_(-std::numeric_limits<double>::infinity())));
- BOOST_TEST(test(" 0.0", signed_(0.0)));
- }
-
- {
- ///////////////////////////////////////////////////////////////////////
- typedef karma::real_generator<double, statefull_policy<double> >
- statefull_type;
-
- statefull_policy<double> policy(5, true);
- statefull_type const statefull = statefull_type(policy);
-
- BOOST_TEST(test("0.00000", statefull, 0.0));
- BOOST_TEST(test("0.00000", statefull(0.0)));
-
- using namespace boost::phoenix;
- BOOST_TEST(test("0.00000", statefull(val(0.0))));
- }
-
- {
- ///////////////////////////////////////////////////////////////////////
- typedef karma::real_generator<double, trailing_zeros_policy<double> >
- trailing_zeros_type;
- trailing_zeros_type const trail_zeros = trailing_zeros_type();
-
- BOOST_TEST(test("0.0000", trail_zeros, 0.0));
- BOOST_TEST(test("1.0000", trail_zeros, 1.0));
- BOOST_TEST(test("1.0001", trail_zeros, 1.0001));
- BOOST_TEST(test("1.0010", trail_zeros, 1.001));
- BOOST_TEST(test("1.0100", trail_zeros, 1.010));
- BOOST_TEST(test("1.1000", trail_zeros, 1.100));
-
- BOOST_TEST(test("1.2345e-04", trail_zeros, 0.00012345));
- BOOST_TEST(test("0.0012", trail_zeros, 0.0012345));
- BOOST_TEST(test("0.0123", trail_zeros, 0.012345));
- BOOST_TEST(test("0.1235", trail_zeros, 0.12345));
- BOOST_TEST(test("1.2345", trail_zeros, 1.2345));
- BOOST_TEST(test("12.3460", trail_zeros, 12.346));
- BOOST_TEST(test("123.4600", trail_zeros, 123.46));
- BOOST_TEST(test("1234.5000", trail_zeros, 1234.5));
- BOOST_TEST(test("12342.0000", trail_zeros, 12342.));
- BOOST_TEST(test("1.2342e05", trail_zeros, 123420.));
-
- BOOST_TEST(test("-1.0000", trail_zeros, -1.0));
- BOOST_TEST(test("-1.2345", trail_zeros, -1.2345));
- BOOST_TEST(test("-1.2346", trail_zeros, -1.2346));
- BOOST_TEST(test("-1234.2000", trail_zeros, -1234.2));
-
- BOOST_TEST(test("1.0000", trail_zeros(1.0)));
- BOOST_TEST(test("1.0001", trail_zeros(1.0001)));
- BOOST_TEST(test("1.0010", trail_zeros(1.001)));
- BOOST_TEST(test("1.0100", trail_zeros(1.010)));
- BOOST_TEST(test("1.1000", trail_zeros(1.100)));
-
- BOOST_TEST(test("1.2345e-04", trail_zeros(0.00012345)));
- BOOST_TEST(test("0.0012", trail_zeros(0.0012345)));
- BOOST_TEST(test("0.0123", trail_zeros(0.012345)));
- BOOST_TEST(test("0.1235", trail_zeros(0.12345)));
- BOOST_TEST(test("1.2345", trail_zeros(1.2345)));
- BOOST_TEST(test("12.3460", trail_zeros(12.346)));
- BOOST_TEST(test("123.4600", trail_zeros(123.46)));
- BOOST_TEST(test("1234.5000", trail_zeros(1234.5)));
- BOOST_TEST(test("12342.0000", trail_zeros(12342.)));
- BOOST_TEST(test("1.2342e05", trail_zeros(123420.)));
- }
-
- {
- using namespace boost::spirit::ascii;
-
- ///////////////////////////////////////////////////////////////////////
- BOOST_TEST(test_delimited("0.0 ", double_, 0.0, char_(' ')));
- BOOST_TEST(test_delimited("1.0 ", double_, 1.0, char_(' ')));
- BOOST_TEST(test_delimited("1.0 ", double_, 1.0001, char_(' ')));
- BOOST_TEST(test_delimited("1.001 ", double_, 1.001, char_(' ')));
- BOOST_TEST(test_delimited("1.01 ", double_, 1.010, char_(' ')));
- BOOST_TEST(test_delimited("1.1 ", double_, 1.100, char_(' ')));
-
- BOOST_TEST(test_delimited("1.234e-04 ", double_, 0.00012345, char_(' ')));
- BOOST_TEST(test_delimited("0.001 ", double_, 0.0012345, char_(' ')));
- BOOST_TEST(test_delimited("0.012 ", double_, 0.012345, char_(' ')));
- BOOST_TEST(test_delimited("0.123 ", double_, 0.12345, char_(' ')));
- BOOST_TEST(test_delimited("1.234 ", double_, 1.2345, char_(' ')));
- BOOST_TEST(test_delimited("12.346 ", double_, 12.346, char_(' ')));
- BOOST_TEST(test_delimited("123.46 ", double_, 123.46, char_(' ')));
- BOOST_TEST(test_delimited("1234.5 ", double_, 1234.5, char_(' ')));
- BOOST_TEST(test_delimited("12342.0 ", double_, 12342., char_(' ')));
- BOOST_TEST(test_delimited("1.234e05 ", double_, 123420., char_(' ')));
-
- BOOST_TEST(test_delimited("-1.0 ", double_, -1.0, char_(' ')));
- BOOST_TEST(test_delimited("-1.234 ", double_, -1.2345, char_(' ')));
- BOOST_TEST(test_delimited("-1.235 ", double_, -1.2346, char_(' ')));
- BOOST_TEST(test_delimited("-1234.2 ", double_, -1234.2, char_(' ')));
-
- BOOST_TEST(test_delimited("1.0 ", double_(1.0), char_(' ')));
- BOOST_TEST(test_delimited("1.0 ", double_(1.0001), char_(' ')));
- BOOST_TEST(test_delimited("1.001 ", double_(1.001), char_(' ')));
- BOOST_TEST(test_delimited("1.01 ", double_(1.010), char_(' ')));
- BOOST_TEST(test_delimited("1.1 ", double_(1.100), char_(' ')));
-
- BOOST_TEST(test_delimited("1.234e-04 ", double_(0.00012345), char_(' ')));
- BOOST_TEST(test_delimited("0.001 ", double_(0.0012345), char_(' ')));
- BOOST_TEST(test_delimited("0.012 ", double_(0.012345), char_(' ')));
- BOOST_TEST(test_delimited("0.123 ", double_(0.12345), char_(' ')));
- BOOST_TEST(test_delimited("1.234 ", double_(1.2345), char_(' ')));
- BOOST_TEST(test_delimited("12.346 ", double_(12.346), char_(' ')));
- BOOST_TEST(test_delimited("123.46 ", double_(123.46), char_(' ')));
- BOOST_TEST(test_delimited("1234.5 ", double_(1234.5), char_(' ')));
- BOOST_TEST(test_delimited("12342.0 ", double_(12342.), char_(' ')));
- BOOST_TEST(test_delimited("1.234e05 ", double_(123420.), char_(' ')));
- }
-
- {
- using namespace boost::spirit::ascii;
-
- ///////////////////////////////////////////////////////////////////////
- // test NaN and Inf
- BOOST_TEST(test_delimited("nan ", double_,
- std::numeric_limits<double>::quiet_NaN(), char_(' ')));
- BOOST_TEST(test_delimited("-nan ", double_,
- -std::numeric_limits<double>::quiet_NaN(), char_(' ')));
- BOOST_TEST(test_delimited("inf ", double_,
- std::numeric_limits<double>::infinity(), char_(' ')));
- BOOST_TEST(test_delimited("-inf ", double_,
- -std::numeric_limits<double>::infinity(), char_(' ')));
-
- typedef karma::real_generator<double, signed_policy<double> > signed_type;
- signed_type const signed_ = signed_type();
-
- BOOST_TEST(test_delimited("+nan ", signed_,
- std::numeric_limits<double>::quiet_NaN(), char_(' ')));
- BOOST_TEST(test_delimited("-nan ", signed_,
- -std::numeric_limits<double>::quiet_NaN(), char_(' ')));
- BOOST_TEST(test_delimited("+inf ", signed_,
- std::numeric_limits<double>::infinity(), char_(' ')));
- BOOST_TEST(test_delimited("-inf ", signed_,
- -std::numeric_limits<double>::infinity(), char_(' ')));
- BOOST_TEST(test_delimited(" 0.0 ", signed_, 0.0, char_(' ')));
- }
-
- {
- using namespace boost::spirit::ascii;
-
- ///////////////////////////////////////////////////////////////////////
- typedef karma::real_generator<double, scientific_policy<double> >
- science_type;
- science_type const science = science_type();
-
- BOOST_TEST(test("0.0e00", science, 0.0));
- BOOST_TEST(test("1.0e00", science, 1.0));
-
- BOOST_TEST(test("1.234e-05", science, 0.000012345));
- BOOST_TEST(test("1.234e-04", science, 0.00012345));
- BOOST_TEST(test("1.234e-03", science, 0.0012345));
- BOOST_TEST(test("1.234e-02", science, 0.012345));
- BOOST_TEST(test("1.235e-01", science, 0.12345)); // note the rounding error!
- BOOST_TEST(test("1.234e00", science, 1.2345));
- BOOST_TEST(test("1.235e01", science, 12.346));
- BOOST_TEST(test("1.235e02", science, 123.46));
- BOOST_TEST(test("1.234e03", science, 1234.5));
- BOOST_TEST(test("1.234e04", science, 12342.));
- BOOST_TEST(test("1.234e05", science, 123420.));
-
- BOOST_TEST(test("-1.234e-05", science, -0.000012345));
- BOOST_TEST(test("-1.234e-04", science, -0.00012345));
- BOOST_TEST(test("-1.234e-03", science, -0.0012345));
- BOOST_TEST(test("-1.234e-02", science, -0.012345));
- BOOST_TEST(test("-1.235e-01", science, -0.12345)); // note the rounding error!
- BOOST_TEST(test("-1.234e00", science, -1.2345));
- BOOST_TEST(test("-1.235e01", science, -12.346));
- BOOST_TEST(test("-1.235e02", science, -123.46));
- BOOST_TEST(test("-1.234e03", science, -1234.5));
- BOOST_TEST(test("-1.234e04", science, -12342.));
- BOOST_TEST(test("-1.234e05", science, -123420.));
-
- BOOST_TEST(test("1.234E-05", upper[science], 0.000012345));
- BOOST_TEST(test("1.234E-04", upper[science], 0.00012345));
- BOOST_TEST(test("1.234E-03", upper[science], 0.0012345));
- BOOST_TEST(test("1.234E-02", upper[science], 0.012345));
- BOOST_TEST(test("1.235E-01", upper[science], 0.12345)); // note the rounding error!
- BOOST_TEST(test("1.234E00", upper[science], 1.2345));
- BOOST_TEST(test("1.235E01", upper[science], 12.346));
- BOOST_TEST(test("1.235E02", upper[science], 123.46));
- BOOST_TEST(test("1.234E03", upper[science], 1234.5));
- BOOST_TEST(test("1.234E04", upper[science], 12342.));
- BOOST_TEST(test("1.234E05", upper[science], 123420.));
-
- BOOST_TEST(test("-1.234E-05", upper[science], -0.000012345));
- BOOST_TEST(test("-1.234E-04", upper[science], -0.00012345));
- BOOST_TEST(test("-1.234E-03", upper[science], -0.0012345));
- BOOST_TEST(test("-1.234E-02", upper[science], -0.012345));
- BOOST_TEST(test("-1.235E-01", upper[science], -0.12345)); // note the rounding error!
- BOOST_TEST(test("-1.234E00", upper[science], -1.2345));
- BOOST_TEST(test("-1.235E01", upper[science], -12.346));
- BOOST_TEST(test("-1.235E02", upper[science], -123.46));
- BOOST_TEST(test("-1.234E03", upper[science], -1234.5));
- BOOST_TEST(test("-1.234E04", upper[science], -12342.));
- BOOST_TEST(test("-1.234E05", upper[science], -123420.));
- }
-
- {
- using namespace boost::spirit::ascii;
-
- ///////////////////////////////////////////////////////////////////////
- typedef karma::real_generator<double, fixed_policy<double> > fixed_type;
- fixed_type const fixed = fixed_type();
-
- BOOST_TEST(test("0.0", fixed, 0.0));
- BOOST_TEST(test("1.0", fixed, 1.0));
-
- BOOST_TEST(test("0.0", fixed, 0.000012345));
- BOOST_TEST(test("0.0", fixed, 0.00012345));
- BOOST_TEST(test("0.001", fixed, 0.0012345));
- BOOST_TEST(test("0.012", fixed, 0.012345));
- BOOST_TEST(test("0.123", fixed, 0.12345));
- BOOST_TEST(test("1.234", fixed, 1.2345));
- BOOST_TEST(test("12.345", fixed, 12.345));
- BOOST_TEST(test("123.45", fixed, 123.45));
- BOOST_TEST(test("1234.5", fixed, 1234.5));
- BOOST_TEST(test("12342.0", fixed, 12342.));
- BOOST_TEST(test("123420.0", fixed, 123420.));
- BOOST_TEST(test("123420000000000000000.0", fixed, 1.23420e20));
-
- BOOST_TEST(test("0.0", fixed, -0.000012345));
- BOOST_TEST(test("0.0", fixed, -0.00012345));
- BOOST_TEST(test("-0.001", fixed, -0.0012345));
- BOOST_TEST(test("-0.012", fixed, -0.012345));
- BOOST_TEST(test("-0.123", fixed, -0.12345));
- BOOST_TEST(test("-1.234", fixed, -1.2345));
- BOOST_TEST(test("-12.346", fixed, -12.346));
- BOOST_TEST(test("-123.46", fixed, -123.46));
- BOOST_TEST(test("-1234.5", fixed, -1234.5));
- BOOST_TEST(test("-12342.0", fixed, -12342.));
- BOOST_TEST(test("-123420.0", fixed, -123420.));
- BOOST_TEST(test("-123420000000000000000.0", fixed, -1.23420e20));
- }
-
- {
- BOOST_TEST(test("1.0", lit(1.0)));
- BOOST_TEST(test("1.0", lit(1.0f)));
- BOOST_TEST(test("1.0", lit(1.0l)));
-
- BOOST_TEST(test("1.0", double_(1.0), 1.0));
- BOOST_TEST(test("1.0", float_(1.0), 1.0f));
- BOOST_TEST(test("1.0", long_double(1.0), 1.0l));
- BOOST_TEST(!test("", double_(1.0), 2.0));
- BOOST_TEST(!test("", float_(1.0), 2.0f));
- BOOST_TEST(!test("", long_double(1.0), 2.0l));
- }
-
- {
- using namespace boost::spirit::ascii;
-
- ///////////////////////////////////////////////////////////////////////
- // test NaN and Inf
- BOOST_TEST(test("NAN", upper[double_],
- std::numeric_limits<double>::quiet_NaN()));
- BOOST_TEST(test("-NAN", upper[double_],
- -std::numeric_limits<double>::quiet_NaN()));
- BOOST_TEST(test("INF", upper[double_],
- std::numeric_limits<double>::infinity()));
- BOOST_TEST(test("-INF", upper[double_],
- -std::numeric_limits<double>::infinity()));
-
- typedef karma::real_generator<double, signed_policy<double> > signed_type;
- signed_type const signed_ = signed_type();
-
- BOOST_TEST(test("+NAN", upper[signed_],
- std::numeric_limits<double>::quiet_NaN()));
- BOOST_TEST(test("-NAN", upper[signed_],
- -std::numeric_limits<double>::quiet_NaN()));
- BOOST_TEST(test("+INF", upper[signed_],
- std::numeric_limits<double>::infinity()));
- BOOST_TEST(test("-INF", upper[signed_],
- -std::numeric_limits<double>::infinity()));
- BOOST_TEST(test(" 0.0", upper[signed_], 0.0));
- }
-
-// support for using real_concept with a Karma generator has been implemented
-// in Boost versions > 1.36 only, additionally real_concept is available only
-// if BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS is not defined
-#if BOOST_VERSION > 103600 && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
- {
- using boost::math::concepts::real_concept;
- typedef karma::real_generator<real_concept> custom_type;
- custom_type const custom = custom_type();
-
- BOOST_TEST(test("0.0", custom, real_concept(0.0)));
- BOOST_TEST(test("1.0", custom, real_concept(1.0)));
- BOOST_TEST(test("1.0", custom, real_concept(1.0001)));
- BOOST_TEST(test("1.001", custom, real_concept(1.001)));
- BOOST_TEST(test("1.01", custom, real_concept(1.010)));
- BOOST_TEST(test("1.1", custom, real_concept(1.100)));
-
- BOOST_TEST(test("1.234e-04", custom, real_concept(0.00012345)));
- BOOST_TEST(test("0.001", custom, real_concept(0.0012345)));
- BOOST_TEST(test("0.012", custom, real_concept(0.012345)));
- BOOST_TEST(test("0.123", custom, real_concept(0.12345)));
- BOOST_TEST(test("1.234", custom, real_concept(1.2345)));
- BOOST_TEST(test("12.346", custom, real_concept(12.346)));
- BOOST_TEST(test("123.46", custom, real_concept(123.46)));
- BOOST_TEST(test("1234.5", custom, real_concept(1234.5)));
- BOOST_TEST(test("12342.0", custom, real_concept(12342.)));
- BOOST_TEST(test("1.234e05", custom, real_concept(123420.)));
-
- BOOST_TEST(test("-1.0", custom, real_concept(-1.0)));
- BOOST_TEST(test("-1.234", custom, real_concept(-1.2345)));
- BOOST_TEST(test("-1.235", custom, real_concept(-1.2346)));
- BOOST_TEST(test("-1234.2", custom, real_concept(-1234.2)));
-
- BOOST_TEST(test("1.0", custom(real_concept(1.0))));
- BOOST_TEST(test("1.0", custom(real_concept(1.0001))));
- BOOST_TEST(test("1.001", custom(real_concept(1.001))));
- BOOST_TEST(test("1.01", custom(real_concept(1.010))));
- BOOST_TEST(test("1.1", custom(real_concept(1.100))));
-
- BOOST_TEST(test("1.234e-04", custom(real_concept(0.00012345))));
- BOOST_TEST(test("0.001", custom(real_concept(0.0012345))));
- BOOST_TEST(test("0.012", custom(real_concept(0.012345))));
- BOOST_TEST(test("0.123", custom(real_concept(0.12345))));
- BOOST_TEST(test("1.234", custom(real_concept(1.2345))));
- BOOST_TEST(test("12.346", custom(real_concept(12.346))));
- BOOST_TEST(test("123.46", custom(real_concept(123.46))));
- BOOST_TEST(test("1234.5", custom(real_concept(1234.5))));
- BOOST_TEST(test("12342.0", custom(real_concept(12342.))));
- BOOST_TEST(test("1.234e05", custom(real_concept(123420.))));
- }
-#endif
-
-// this appears to be broken on Apple Tiger x86 with gcc4.0.1
-#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ != 40001) || \
- !defined(__APPLE__)
- {
- ///////////////////////////////////////////////////////////////////////
- typedef karma::real_generator<double, bordercase_policy<double> >
- bordercase_type;
- bordercase_type const bordercase = bordercase_type();
-
-// BOOST_TEST(test("-5.7222349715140557e307",
-// bordercase(-5.7222349715140557e307)));
-
- BOOST_TEST(test("1.7976931348623158e308",
- bordercase(1.7976931348623158e308))); // DBL_MAX
- BOOST_TEST(test("-1.7976931348623158e308",
- bordercase(-1.7976931348623158e308))); // -DBL_MAX
- BOOST_TEST(test("2.2250738585072014e-308",
- bordercase(2.2250738585072014e-308))); // DBL_MIN
- BOOST_TEST(test("-2.2250738585072014e-308",
- bordercase(-2.2250738585072014e-308))); // -DBL_MIN
- }
-#endif
-
- {
- boost::optional<double> v;
- BOOST_TEST(!test("", double_, v));
- BOOST_TEST(!test("", double_(1.0), v));
-
- v = 1.0;
- BOOST_TEST(test("1.0", double_, v));
- BOOST_TEST(test("1.0", double_(1.0), v));
- }
-
-// we support Phoenix attributes only starting with V2.2
-#if SPIRIT_VERSION >= 0x2020
- { // Phoenix expression tests (requires to include
- // karma_phoenix_attributes.hpp)
- namespace phoenix = boost::phoenix;
-
- BOOST_TEST(test("1.0", double_, phoenix::val(1.0)));
-
- double d = 1.2;
- BOOST_TEST(test("1.2", double_, phoenix::ref(d)));
- BOOST_TEST(test("2.2", double_, ++phoenix::ref(d)));
- }
-#endif
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/karma/real_scientific.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/real_scientific.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-// Copyright (c) 2010 Lars Kielhorn
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/karma.hpp>
-
-#include <iostream>
-#include <string>
-#include <iterator>
-
-namespace karma = boost::spirit::karma;
-
-// define a new real number formatting policy
-template <typename Num>
-struct scientific_policy : karma::real_policies<Num>
-{
- // we want the numbers always to be in scientific format
- static int floatfield(Num n) { return std::ios_base::scientific; }
-};
-
-int main()
-{
- // define a new generator type based on the new policy
- typedef karma::real_generator<double, scientific_policy<double> >
- science_type;
- science_type const scientific = science_type();
-
- std::string output;
- typedef std::back_insert_iterator<std::string> output_iterator;
- output_iterator sink(output);
-
- // should output: 1.0e-01, but will output: 10.0e-02
- BOOST_TEST(karma::generate(sink, scientific, 0.1) && output == "1.0e-01");
-
- return boost::report_errors();
-};

Deleted: branches/release/libs/spirit/test/karma/repeat.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/repeat.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,240 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/assign/std/vector.hpp>
-
-#include <boost/spirit/include/karma_operator.hpp>
-#include <boost/spirit/include/karma_char.hpp>
-#include <boost/spirit/include/karma_string.hpp>
-#include <boost/spirit/include/karma_numeric.hpp>
-#include <boost/spirit/include/karma_directive.hpp>
-#include <boost/spirit/include/karma_operator.hpp>
-#include <boost/spirit/include/karma_action.hpp>
-#include <boost/spirit/include/karma_nonterminal.hpp>
-#include <boost/spirit/include/karma_auxiliary.hpp>
-#include <boost/spirit/include/karma_directive.hpp>
-#include <boost/spirit/include/karma_phoenix_attributes.hpp>
-#include <boost/spirit/include/support_argument.hpp>
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_statement.hpp>
-#include <boost/fusion/include/std_pair.hpp>
-
-#include <string>
-#include <iostream>
-#include <vector>
-
-#include "test.hpp"
-
-using namespace spirit_test;
-
-///////////////////////////////////////////////////////////////////////////////
-struct action
-{
- action (std::vector<char>& vec)
- : vec(vec), it(vec.begin())
- {}
-
- void operator()(unsigned& value, boost::spirit::unused_type, bool& pass) const
- {
- pass = (it != vec.end());
- if (pass)
- value = *it++;
- }
-
- std::vector<char>& vec;
- mutable std::vector<char>::iterator it;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-int main()
-{
- using namespace boost::spirit::ascii;
- using boost::spirit::karma::repeat;
- using boost::spirit::karma::inf;
- using boost::spirit::karma::int_;
- using boost::spirit::karma::hex;
- using boost::spirit::karma::_1;
-
- {
- std::string str8("aaaaaaaa");
- BOOST_TEST(test("aaaaaaaa", repeat[char_], str8)); // kleene synonym
- BOOST_TEST(test("aaaaaaaa", repeat(8)[char_], str8));
- BOOST_TEST(test("aaa", repeat(3)[char_], str8));
- BOOST_TEST(!test("aaaaaaaa", repeat(9)[char_], str8));
-
- std::string str3("aaa");
- BOOST_TEST(test("aaaaa", repeat(3, 5)[char_], str8));
- BOOST_TEST(test("aaa", repeat(3, 5)[char_], str3));
- BOOST_TEST(!test("aaa", repeat(4, 5)[char_], str3));
-
- BOOST_TEST(test("aaa", repeat(3, inf)[char_], str3));
- BOOST_TEST(test("aaaaaaaa", repeat(3, inf)[char_], str8));
- BOOST_TEST(!test("aaa", repeat(4, inf)[char_], str3));
- }
-
- {
- std::string str8("aaaaaaaa");
- BOOST_TEST(test_delimited("a a a a a a a a ", repeat[char_], str8, space));
- BOOST_TEST(test_delimited("a a a a a a a a ", repeat(8)[char_], str8, space));
- BOOST_TEST(test_delimited("a a a ", repeat(3)[char_], str8, space));
- BOOST_TEST(!test_delimited("a a a a a a a a ", repeat(9)[char_], str8, space));
-
- std::string str3("aaa");
- BOOST_TEST(test_delimited("a a a a a ", repeat(3, 5)[char_], str8, space));
- BOOST_TEST(test_delimited("a a a ", repeat(3, 5)[char_], str3, space));
- BOOST_TEST(!test_delimited("a a a ", repeat(4, 5)[char_], str3, space));
-
- BOOST_TEST(test_delimited("a a a ", repeat(3, inf)[char_], str3, space));
- BOOST_TEST(test_delimited("a a a a a a a a ", repeat(3, inf)[char_], str8, space));
- BOOST_TEST(!test_delimited("a a a ", repeat(4, inf)[char_], str3, space));
- }
-
- { // lazy repeats
- using boost::phoenix::val;
-
- std::string str8("aaaaaaaa");
- BOOST_TEST(test("aaaaaaaa", repeat[char_], str8)); // kleene synonym
- BOOST_TEST(test("aaaaaaaa", repeat(val(8))[char_], str8));
- BOOST_TEST(test("aaa", repeat(val(3))[char_], str8));
- BOOST_TEST(!test("aaaaaaaa", repeat(val(9))[char_], str8));
-
- std::string str3("aaa");
- BOOST_TEST(test("aaaaa", repeat(val(3), val(5))[char_], str8));
- BOOST_TEST(test("aaa", repeat(val(3), val(5))[char_], str3));
- BOOST_TEST(!test("aaa", repeat(val(4), val(5))[char_], str3));
-
- BOOST_TEST(test("aaa", repeat(val(3), val(inf))[char_], str3));
- BOOST_TEST(test("aaaaaaaa", repeat(val(3), val(inf))[char_], str8));
- BOOST_TEST(!test("aaa", repeat(val(4), val(inf))[char_], str3));
- }
-
- {
- std::string str("aBcdeFGH");
- BOOST_TEST(test("abcdefgh", lower[repeat(8)[char_]], str));
- BOOST_TEST(test_delimited("A B C D E F G H ", upper[repeat(8)[char_]], str, space));
- }
-
- { // actions
- namespace phx = boost::phoenix;
-
- std::vector<char> v;
- v.push_back('a');
- v.push_back('a');
- v.push_back('a');
- v.push_back('a');
- BOOST_TEST(test("aaaa", repeat(4)[char_][_1 = phx::ref(v)]));
- }
-
- { // more actions
- namespace phx = boost::phoenix;
-
- std::vector<int> v;
- v.push_back(123);
- v.push_back(456);
- v.push_back(789);
- BOOST_TEST(test_delimited("123 456 789 ", repeat(3)[int_][_1 = phx::ref(v)], space));
- }
-
- // failing sub-generators
- {
- using boost::spirit::karma::strict;
- using boost::spirit::karma::relaxed;
-
- using namespace boost::assign;
- namespace karma = boost::spirit::karma;
-
- typedef std::pair<char, char> data;
- std::vector<data> v2, v3;
- v2 += std::make_pair('a', 'a'),
- std::make_pair('b', 'b'),
- std::make_pair('c', 'c'),
- std::make_pair('d', 'd'),
- std::make_pair('e', 'e'),
- std::make_pair('f', 'f'),
- std::make_pair('g', 'g');
- v3 += std::make_pair('a', 'a'),
- std::make_pair('b', 'b'),
- std::make_pair('c', 'c'),
- std::make_pair('d', 'd');
-
- karma::rule<spirit_test::output_iterator<char>::type, data()> r;
-
- r = &char_('d') << char_;
- BOOST_TEST(test("d", repeat[r], v2));
- BOOST_TEST(test("d", relaxed[repeat[r]], v2));
- BOOST_TEST(test("", strict[repeat[r]], v2));
-
- r = !char_('d') << char_;
- BOOST_TEST(test("abcefg", repeat(6)[r], v2));
- BOOST_TEST(!test("", repeat(5)[r], v2));
- BOOST_TEST(test("abcefg", relaxed[repeat(6)[r]], v2));
- BOOST_TEST(!test("", relaxed[repeat(5)[r]], v2));
- BOOST_TEST(!test("", strict[repeat(6)[r]], v2));
- BOOST_TEST(!test("", strict[repeat(5)[r]], v2));
-
- r = !char_('c') << char_;
- BOOST_TEST(test("abd", repeat(3)[r], v2));
- BOOST_TEST(test("abd", relaxed[repeat(3)[r]], v2));
- BOOST_TEST(!test("", strict[repeat(3)[r]], v2));
-
- r = !char_('a') << char_;
- BOOST_TEST(test("bcdef", repeat(3, 5)[r], v2));
- BOOST_TEST(test("bcd", repeat(3, 5)[r], v3));
- BOOST_TEST(!test("", repeat(4, 5)[r], v3));
- BOOST_TEST(test("bcdef", relaxed[repeat(3, 5)[r]], v2));
- BOOST_TEST(test("bcd", relaxed[repeat(3, 5)[r]], v3));
- BOOST_TEST(!test("", relaxed[repeat(4, 5)[r]], v3));
- BOOST_TEST(!test("", strict[repeat(3, 5)[r]], v2));
- BOOST_TEST(!test("", strict[repeat(3, 5)[r]], v3));
- BOOST_TEST(!test("", strict[repeat(4, 5)[r]], v3));
-
- BOOST_TEST(test("bcd", repeat(3, inf)[r], v3));
- BOOST_TEST(test("bcdefg", repeat(3, inf)[r], v2));
- BOOST_TEST(!test("", repeat(4, inf)[r], v3));
-
- r = !char_('g') << char_;
- BOOST_TEST(test("abcde", repeat(3, 5)[r], v2));
- BOOST_TEST(test("abcd", repeat(3, 5)[r], v3));
- BOOST_TEST(!test("", repeat(4, 5)[r], v3));
- BOOST_TEST(test("abcde", relaxed[repeat(3, 5)[r]], v2));
- BOOST_TEST(test("abcd", relaxed[repeat(3, 5)[r]], v3));
- BOOST_TEST(!test("", relaxed[repeat(4, 5)[r]], v3));
- BOOST_TEST(test("abcde", strict[repeat(3, 5)[r]], v2));
- BOOST_TEST(test("abcd", strict[repeat(3, 5)[r]], v3));
- BOOST_TEST(!test("", strict[repeat(5)[r]], v3));
- }
-
- {
- // make sure user defined end condition is applied if no attribute
- // is passed in
- using namespace boost::assign;
-
- std::vector<char> v;
- v += 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h';
- BOOST_TEST(test("[6162636465666768]",
- '[' << repeat[hex[action(v)]] << ']'));
- }
-
-// we support Phoenix attributes only starting with V2.2
-#if SPIRIT_VERSION >= 0x2020
- {
- namespace ascii = boost::spirit::ascii;
- namespace phoenix = boost::phoenix;
-
- char c = 'a';
- BOOST_TEST(test("bcd", repeat(3)[ascii::char_[_1 = ++phoenix::ref(c)]]));
-
- c = 'a';
- BOOST_TEST(test("bcd", repeat(3)[ascii::char_], ++phoenix::ref(c)));
- }
-#endif
-
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/karma/semantic_action_attribute.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/semantic_action_attribute.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,35 +0,0 @@
-// Copyright (c) 2010 Michael Caisse
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <string>
-#include <vector>
-#include <boost/spirit/include/karma.hpp>
-#include <boost/spirit/include/phoenix.hpp>
-
-#include "test.hpp"
-
-using namespace spirit_test;
-
-namespace karma = boost::spirit::karma;
-namespace phx = boost::phoenix;
-
-int main()
-{
- using karma::int_;
- using karma::_1;
-
- BOOST_TEST(test("16909060", int_[ _1 = phx::val(0x01020304) ]));
-
- // make sure the passed attribute type does not enforce the attribute type
- // for the semantic action
- unsigned char char_value = 8;
- BOOST_TEST(test("16909060", int_[ _1 = phx::val(0x01020304) ], char_value));
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/karma/sequence.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/sequence.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,289 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// #define KARMA_TEST_COMPILE_FAIL
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/karma_char.hpp>
-#include <boost/spirit/include/karma_string.hpp>
-#include <boost/spirit/include/karma_numeric.hpp>
-#include <boost/spirit/include/karma_generate.hpp>
-#include <boost/spirit/include/karma_operator.hpp>
-#include <boost/spirit/include/karma_directive.hpp>
-#include <boost/spirit/include/karma_action.hpp>
-#include <boost/spirit/include/karma_nonterminal.hpp>
-#include <boost/spirit/include/karma_auxiliary.hpp>
-#include <boost/spirit/include/karma_directive.hpp>
-#include <boost/spirit/include/support_unused.hpp>
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_statement.hpp>
-#include <boost/spirit/include/phoenix_stl.hpp>
-#include <boost/fusion/include/vector.hpp>
-
-#include "test.hpp"
-
-using namespace spirit_test;
-
-///////////////////////////////////////////////////////////////////////////////
-// lazy version of fusion::size
-struct seqsize_impl
-{
- template <typename Sequence>
- struct result
- : boost::fusion::result_of::size<Sequence>
- {};
-
- template <typename Sequence>
- typename result<Sequence>::type
- operator()(Sequence const& seq) const
- {
- return boost::fusion::size(seq);
- }
-};
-
-boost::phoenix::function<seqsize_impl> const seqsize = seqsize_impl();
-
-///////////////////////////////////////////////////////////////////////////////
-int main()
-{
- using namespace boost::spirit;
- using namespace boost::spirit::ascii;
- namespace fusion = boost::fusion;
-
- {
- {
- BOOST_TEST(test("xi", char_('x') << char_('i')));
- BOOST_TEST(!test("xi", char_('x') << char_('o')));
- }
-
- {
- BOOST_TEST(test_delimited("x i ", char_('x') << 'i', char(' ')));
- BOOST_TEST(!test_delimited("x i ",
- char_('x') << char_('o'), char(' ')));
- }
-
- {
- BOOST_TEST(test_delimited("Hello , World ",
- lit("Hello") << ',' << "World", char(' ')));
- }
-
- {
- // a single element
- char attr = 'a';
- BOOST_TEST((test("ab", char_ << 'b', attr)));
- }
-
- {
- // a single element fusion sequence
- fusion::vector<char> attr('a');
- BOOST_TEST((test("ab", char_ << 'b', attr)));
- }
-
- {
- fusion::vector<char, char, std::string> p ('a', 'b', "cdefg");
- BOOST_TEST(test("abcdefg", char_ << char_ << string, p));
- BOOST_TEST(test_delimited("a b cdefg ",
- char_ << char_ << string, p, char(' ')));
- }
-
- {
- fusion::vector<char, int, char> p ('a', 12, 'c');
- BOOST_TEST(test("a12c", char_ << int_ << char_, p));
- BOOST_TEST(test_delimited("a 12 c ",
- char_ << int_ << char_, p, char(' ')));
- }
-
- {
- // element sequence can be shorter and longer than the attribute
- // sequence
- using boost::spirit::karma::strict;
- using boost::spirit::karma::relaxed;
-
- fusion::vector<char, int, char> p ('a', 12, 'c');
- BOOST_TEST(test("a12", char_ << int_, p));
- BOOST_TEST(test_delimited("a 12 ", char_ << int_, p, char(' ')));
-
- BOOST_TEST(test("a12", relaxed[char_ << int_], p));
- BOOST_TEST(test_delimited("a 12 ", relaxed[char_ << int_], p, char(' ')));
-
- BOOST_TEST(!test("", strict[char_ << int_], p));
- BOOST_TEST(!test_delimited("", strict[char_ << int_], p, char(' ')));
-
- fusion::vector<char, int> p1 ('a', 12);
- BOOST_TEST(test("a12c", char_ << int_ << char_('c'), p1));
- BOOST_TEST(test_delimited("a 12 c ", char_ << int_ << char_('c'),
- p1, char(' ')));
-
- BOOST_TEST(test("a12c", relaxed[char_ << int_ << char_('c')], p1));
- BOOST_TEST(test_delimited("a 12 c ",
- relaxed[char_ << int_ << char_('c')], p1, char(' ')));
-
- BOOST_TEST(!test("", strict[char_ << int_ << char_('c')], p1));
- BOOST_TEST(!test_delimited("", strict[char_ << int_ << char_('c')],
- p1, char(' ')));
-
- BOOST_TEST(test("a12", strict[char_ << int_], p1));
- BOOST_TEST(test_delimited("a 12 ", strict[char_ << int_], p1, char(' ')));
-
- std::string value("foo ' bar");
- BOOST_TEST(test("\"foo ' bar\"", '"' << strict[*(~char_('*'))] << '"', value));
- BOOST_TEST(test("\"foo ' bar\"", strict['"' << *(~char_('*')) << '"'], value));
- }
-
- {
- // if all elements of a sequence have unused parameters, the whole
- // sequence has an unused parameter as well
- fusion::vector<char, char> p ('a', 'e');
- BOOST_TEST(test("abcde",
- char_ << (lit('b') << 'c' << 'd') << char_, p));
- BOOST_TEST(test_delimited("a b c d e ",
- char_ << (lit('b') << 'c' << 'd') << char_, p, char(' ')));
- }
-
- {
- // literal generators do not need an attribute
- fusion::vector<char, char> p('a', 'c');
- BOOST_TEST(test("abc", char_ << 'b' << char_, p));
- BOOST_TEST(test_delimited("a b c ",
- char_ << 'b' << char_, p, char(' ')));
- }
-
- {
- // literal generators do not need an attribute, not even at the end
- fusion::vector<char, char> p('a', 'c');
- BOOST_TEST(test("acb", char_ << char_ << 'b', p));
- BOOST_TEST(test_delimited("a c b ",
- char_ << char_ << 'b', p, char(' ')));
- }
-
- {
- std::list<int> v;
- v.push_back(1);
- v.push_back(2);
- v.push_back(3);
- BOOST_TEST(test("123", int_ << int_ << int_, v));
-// BOOST_TEST(test_delimited("1 2 3 ", int_ << int_ << int_, v, ' '));
-// BOOST_TEST(test("1,2,3", int_ << ',' << int_ << ',' << int_, v));
-// BOOST_TEST(test_delimited("1 , 2 , 3 ",
-// int_ << ',' << int_ << ',' << int_, v, ' '));
- }
-
- {
- BOOST_TEST(test("aa", lower[char_('A') << 'a']));
- BOOST_TEST(test_delimited("BEGIN END ",
- upper[lit("begin") << "end"], char(' ')));
- BOOST_TEST(!test_delimited("BEGIN END ",
- upper[lit("begin") << "nend"], char(' ')));
-
- BOOST_TEST(test("Aa ", left_align[char_('A') << 'a']));
- BOOST_TEST(test(" Aa ", center[char_('A') << 'a']));
- BOOST_TEST(test(" Aa", right_align[char_('A') << 'a']));
- }
-
- {
- // make sure single element tuples get passed through if the rhs
- // has a single element tuple as its attribute
- typedef spirit_test::output_iterator<char>::type iterator_type;
- fusion::vector<double, int> fv(2.0, 1);
- karma::rule<iterator_type, fusion::vector<double, int>()> r;
- r %= double_ << ',' << int_;
- BOOST_TEST(test("test:2.0,1", "test:" << r, fv));
- }
-
- // action tests
- {
- using namespace boost::phoenix;
-
- BOOST_TEST(test("abcdefg",
- (char_ << char_ << string)[_1 = 'a', _2 = 'b', _3 = "cdefg"]));
- BOOST_TEST(test_delimited("a b cdefg ",
- (char_ << char_ << string)[_1 = 'a', _2 = 'b', _3 = "cdefg"],
- char(' ')));
-
- BOOST_TEST(test_delimited("a 12 c ",
- (char_ << lit(12) << char_)[_1 = 'a', _2 = 'c'], char(' ')));
-
- char c = 'c';
- BOOST_TEST(test("abc",
- (char_[_1 = 'a'] << 'b' << char_)[_1 = 'x', _2 = ref(c)]));
- BOOST_TEST(test_delimited("a b c ",
- (char_[_1 = 'a'] << 'b' << char_)[_2 = ref(c)], char(' ')));
-
- BOOST_TEST(test("aa", lower[char_ << 'A'][_1 = 'A']));
- BOOST_TEST(test("AA", upper[char_ << 'a'][_1 = 'a']));
-
- BOOST_TEST(test("Aa ", left_align[char_ << 'a'][_1 = 'A']));
- BOOST_TEST(test(" Aa ", center[char_ << 'a'][_1 = 'A']));
- BOOST_TEST(test(" Aa", right_align[char_ << 'a'][_1 = 'A']));
- }
- }
-
- // test special case where sequence has a one element vector attribute
- // sequence and this element is a rule (attribute has to be passed through
- // without change)
- {
- typedef spirit_test::output_iterator<char>::type outiter_type;
- namespace karma = boost::spirit::karma;
-
- karma::rule<outiter_type, std::vector<int>()> r = -(int_ % ',');
- std::vector<int> v;
- BOOST_TEST(test(">", '>' << r, v));
-
- v.push_back(1);
- v.push_back(2);
- v.push_back(3);
- v.push_back(4);
- BOOST_TEST(test(">1,2,3,4", '>' << r, v));
- }
-
- {
- namespace karma = boost::spirit::karma;
- typedef spirit_test::output_iterator<char>::type outiter_type;
-
- karma::rule<outiter_type, std::string()> e = karma::string;
- karma::rule<outiter_type, std::vector<std::string>()> l = e << *(',' << e);
-
- std::vector<std::string> v;
- v.push_back("abc1");
- v.push_back("abc2");
- v.push_back("abc3");
- BOOST_TEST(test("abc1,abc2,abc3", l, v));
- }
-
- {
- namespace karma = boost::spirit::karma;
- namespace phoenix = boost::phoenix;
-
- typedef spirit_test::output_iterator<char>::type outiter_type;
- typedef fusion::vector<char, char, char> vector_type;
-
- vector_type p ('a', 'b', 'c');
- BOOST_TEST(test("ab", char_ << char_, p));
-
- karma::rule<outiter_type, vector_type()> r;
- r %= char_ << char_ << &karma::eps[seqsize(_val) == 3];
- BOOST_TEST(!test("", r, p));
-
- r %= char_ << char_ << char_ << &karma::eps[seqsize(_val) == 3];
- BOOST_TEST(test("abc", r, p));
- }
-
- {
- std::list<int> v;
- v.push_back(1);
- v.push_back(2);
- v.push_back(3);
- v.push_back(4);
-
- BOOST_TEST(test("1234", repeat(2)[int_] << *int_, v));
- BOOST_TEST(test_delimited("1 2 3 4 ", repeat(2)[int_] << *int_, v, char(' ')));
- }
-
- return boost::report_errors();
-}
-

Modified: branches/release/libs/spirit/test/karma/stream.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/stream.cpp (original)
+++ branches/release/libs/spirit/test/karma/stream.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -3,6 +3,9 @@
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
+#include <stdint.h>
+#include <cwchar>
+#include <streambuf>
 #include <iostream>
 
 #include <boost/config/warning_disable.hpp>
@@ -51,13 +54,6 @@
         BOOST_TEST(test("1", stream, 1));
         BOOST_TEST(test("1.1", stream, 1.1));
         BOOST_TEST(test("{1.2,2.4}", stream, complex(1.2, 2.4)));
-
- BOOST_TEST(test(L"x", wstream, L'x'));
- BOOST_TEST(test(L"xyz", wstream, L"xyz"));
- BOOST_TEST(test(L"xyz", wstream, std::basic_string<wchar_t>(L"xyz")));
- BOOST_TEST(test(L"1", wstream, 1));
- BOOST_TEST(test(L"1.1", wstream, 1.1));
- BOOST_TEST(test(L"{1.2,2.4}", wstream, complex(1.2, 2.4)));
     }
 
     {
@@ -67,13 +63,6 @@
         BOOST_TEST(test("1", stream(1)));
         BOOST_TEST(test("1.1", stream(1.1)));
         BOOST_TEST(test("{1.2,2.4}", stream(complex(1.2, 2.4))));
-
- BOOST_TEST(test(L"x", wstream(L'x')));
- BOOST_TEST(test(L"xyz", wstream(L"xyz")));
- BOOST_TEST(test(L"xyz", wstream(std::basic_string<wchar_t>(L"xyz"))));
- BOOST_TEST(test(L"1", wstream(1)));
- BOOST_TEST(test(L"1.1", wstream(1.1)));
- BOOST_TEST(test(L"{1.2,2.4}", wstream(complex(1.2, 2.4))));
     }
 
     {
@@ -85,13 +74,6 @@
         BOOST_TEST(test("X", upper[stream], 'x'));
         BOOST_TEST(test("XYZ", upper[stream], "xyz"));
         BOOST_TEST(test("XYZ", upper[stream], std::string("xyz")));
-
- BOOST_TEST(test(L"x", lower[wstream], L'X'));
- BOOST_TEST(test(L"xyz", lower[wstream], L"XYZ"));
- BOOST_TEST(test(L"xyz", lower[wstream], std::basic_string<wchar_t>(L"XYZ")));
- BOOST_TEST(test(L"X", upper[wstream], L'x'));
- BOOST_TEST(test(L"XYZ", upper[wstream], L"xyz"));
- BOOST_TEST(test(L"XYZ", upper[wstream], std::basic_string<wchar_t>(L"xyz")));
     }
 
     {
@@ -101,13 +83,6 @@
         BOOST_TEST(test_delimited("1 ", stream, 1, ' '));
         BOOST_TEST(test_delimited("1.1 ", stream, 1.1, ' '));
         BOOST_TEST(test_delimited("{1.2,2.4} ", stream, complex(1.2, 2.4), ' '));
-
- BOOST_TEST(test_delimited(L"x ", wstream, L'x', L' '));
- BOOST_TEST(test_delimited(L"xyz ", wstream, L"xyz", L' '));
- BOOST_TEST(test_delimited(L"xyz ", wstream, std::basic_string<wchar_t>(L"xyz"), L' '));
- BOOST_TEST(test_delimited(L"1 ", wstream, 1, ' '));
- BOOST_TEST(test_delimited(L"1.1 ", wstream, 1.1, ' '));
- BOOST_TEST(test_delimited(L"{1.2,2.4} ", wstream, complex(1.2, 2.4), ' '));
     }
 
     {
@@ -138,13 +113,6 @@
         BOOST_TEST(test_delimited("X ", upper[stream], 'x', ' '));
         BOOST_TEST(test_delimited("XYZ ", upper[stream], "xyz", ' '));
         BOOST_TEST(test_delimited("XYZ ", upper[stream], std::string("xyz"), ' '));
-
- BOOST_TEST(test_delimited(L"x ", lower[wstream], L'X', L' '));
- BOOST_TEST(test_delimited(L"xyz ", lower[wstream], L"XYZ", L' '));
- BOOST_TEST(test_delimited(L"xyz ", lower[wstream], std::basic_string<wchar_t>(L"XYZ"), L' '));
- BOOST_TEST(test_delimited(L"X ", upper[wstream], L'x', L' '));
- BOOST_TEST(test_delimited(L"XYZ ", upper[wstream], L"xyz", ' '));
- BOOST_TEST(test_delimited(L"XYZ ", upper[wstream], std::basic_string<wchar_t>(L"xyz"), L' '));
     }
 
     { // lazy streams
@@ -153,10 +121,6 @@
         std::basic_string<char> s("abc");
         BOOST_TEST((test("abc", stream(phx::val(s)))));
         BOOST_TEST((test("abc", stream(phx::ref(s)))));
-
- std::basic_string<wchar_t> ws(L"abc");
- BOOST_TEST((test(L"abc", wstream(phx::val(ws)))));
- BOOST_TEST((test(L"abc", wstream(phx::ref(ws)))));
     }
 
     {

Deleted: branches/release/libs/spirit/test/karma/symbols.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/symbols.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,314 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/karma_auxiliary.hpp>
-#include <boost/spirit/include/karma_char.hpp>
-#include <boost/spirit/include/karma_string.hpp>
-#include <boost/spirit/include/karma_operator.hpp>
-#include <boost/spirit/include/karma_directive.hpp>
-#include <boost/spirit/include/karma_generate.hpp>
-#include <boost/spirit/include/karma_nonterminal.hpp>
-
-#include "test.hpp"
-
-namespace fusion = boost::fusion;
-
-template <typename T>
-inline std::vector<T>
-make_vector(T const& t1, T const& t2)
-{
- std::vector<T> v;
- v.push_back(t1);
- v.push_back(t2);
- return v;
-}
-
-int main()
-{
- using spirit_test::test;
- using boost::spirit::karma::symbols;
-
- { // basics
- symbols<char, std::string> sym;
-
- sym.add
- ('j', "Joel")
- ('h', "Hartmut")
- ('t', "Tom")
- ('k', "Kim")
- ;
-
- boost::mpl::true_ f =
- boost::mpl::bool_<boost::spirit::traits::is_generator<
- symbols<char, std::string> >::value>();
-
- // silence stupid compiler warnings
- // i.e. MSVC warning C4189: 'f' : local variable is initialized but not referenced
- BOOST_TEST((f.value));
-
- BOOST_TEST((test("Joel", sym, 'j')));
- BOOST_TEST((test("Hartmut", sym, 'h')));
- BOOST_TEST((test("Tom", sym, 't')));
- BOOST_TEST((test("Kim", sym, 'k')));
- BOOST_TEST((!test("", sym, 'x')));
-
- // test copy
- symbols<char, std::string> sym2;
- sym2 = sym;
- BOOST_TEST((test("Joel", sym2, 'j')));
- BOOST_TEST((test("Hartmut", sym2, 'h')));
- BOOST_TEST((test("Tom", sym2, 't')));
- BOOST_TEST((test("Kim", sym2, 'k')));
- BOOST_TEST((!test("", sym2, 'x')));
-
- // make sure it plays well with other generators
- BOOST_TEST((test("Joelyo", sym << "yo", 'j')));
-
- sym.remove
- ('j')
- ('h')
- ;
-
- BOOST_TEST((!test("", sym, 'j')));
- BOOST_TEST((!test("", sym, 'h')));
- }
-
- { // advanced
- using boost::spirit::karma::rule;
- using boost::spirit::karma::lit;
-
- typedef spirit_test::output_iterator<char>::type output_iterator_type;
-
- symbols<char, rule<output_iterator_type> > sym;
-
- rule<output_iterator_type> r1 = lit("Joel");
- rule<output_iterator_type> r2 = lit("Hartmut");
- rule<output_iterator_type> r3 = lit("Tom");
- rule<output_iterator_type> r4 = lit("Kim");
-
- sym.add
- ('j', r1.alias())
- ('h', r2.alias())
- ('t', r3.alias())
- ('k', r4.alias())
- ;
-
- boost::mpl::true_ f =
- boost::mpl::bool_<boost::spirit::traits::is_generator<
- symbols<char, rule<output_iterator_type> > >::value>();
-
- // silence stupid compiler warnings
- // i.e. MSVC warning C4189: 'f' : local variable is initialized but not referenced
- BOOST_TEST((f.value));
-
- BOOST_TEST((test("Joel", sym, 'j')));
- BOOST_TEST((test("Hartmut", sym, 'h')));
- BOOST_TEST((test("Tom", sym, 't')));
- BOOST_TEST((test("Kim", sym, 'k')));
- BOOST_TEST((!test("", sym, 'x')));
-
- // test copy
- symbols<char, rule<output_iterator_type> > sym2;
- sym2 = sym;
- BOOST_TEST((test("Joel", sym2, 'j')));
- BOOST_TEST((test("Hartmut", sym2, 'h')));
- BOOST_TEST((test("Tom", sym2, 't')));
- BOOST_TEST((test("Kim", sym2, 'k')));
- BOOST_TEST((!test("", sym2, 'x')));
-
- // make sure it plays well with other generators
- BOOST_TEST((test("Joelyo", sym << "yo", 'j')));
-
- sym.remove
- ('j')
- ('h')
- ;
-
- BOOST_TEST((!test("", sym, 'j')));
- BOOST_TEST((!test("", sym, 'h')));
- }
-
- { // more advanced
- using boost::spirit::karma::rule;
- using boost::spirit::karma::lit;
- using boost::spirit::karma::string;
-
- typedef spirit_test::output_iterator<char>::type output_iterator_type;
-
- symbols<char, rule<output_iterator_type, std::string()> > sym;
- rule<output_iterator_type, std::string()> r1 = string;
-
- sym.add
- ('j', r1.alias())
- ('h', r1.alias())
- ('t', r1.alias())
- ('k', r1.alias())
- ;
-
- boost::mpl::true_ f =
- boost::mpl::bool_<boost::spirit::traits::is_generator<
- symbols<char, std::string> >::value>();
-
- // silence stupid compiler warnings
- // i.e. MSVC warning C4189: 'f' : local variable is initialized but not referenced
- BOOST_TEST((f.value));
-
- BOOST_TEST((test("Joel", sym, fusion::make_vector('j', "Joel"))));
- BOOST_TEST((test("Hartmut", sym, fusion::make_vector('h', "Hartmut"))));
- BOOST_TEST((test("Tom", sym, fusion::make_vector('t', "Tom"))));
- BOOST_TEST((test("Kim", sym, fusion::make_vector('k', "Kim"))));
- BOOST_TEST((!test("", sym, 'x')));
-
- // test copy
- symbols<char, rule<output_iterator_type, std::string()> > sym2;
- sym2 = sym;
- BOOST_TEST((test("Joel", sym2, fusion::make_vector('j', "Joel"))));
- BOOST_TEST((test("Hartmut", sym2, fusion::make_vector('h', "Hartmut"))));
- BOOST_TEST((test("Tom", sym2, fusion::make_vector('t', "Tom"))));
- BOOST_TEST((test("Kim", sym2, fusion::make_vector('k', "Kim"))));
- BOOST_TEST((!test("", sym2, 'x')));
-
- // make sure it plays well with other generators
- BOOST_TEST((test("Joelyo", sym << "yo", fusion::make_vector('j', "Joel"))));
-
- sym.remove
- ('j')
- ('h')
- ;
-
- BOOST_TEST((!test("", sym, 'j')));
- BOOST_TEST((!test("", sym, 'h')));
- }
-
- { // more advanced
- using boost::spirit::karma::rule;
- using boost::spirit::karma::lit;
- using boost::spirit::karma::char_;
-
- typedef spirit_test::output_iterator<char>::type output_iterator_type;
-
- symbols<char, rule<output_iterator_type, char()> > sym;
- rule<output_iterator_type, char()> r1 = char_;
-
- sym.add
- ('j', r1.alias())
- ('h', r1.alias())
- ('t', r1.alias())
- ('k', r1.alias())
- ;
-
- boost::mpl::true_ f =
- boost::mpl::bool_<boost::spirit::traits::is_generator<
- symbols<char, rule<output_iterator_type, char()> > >::value>();
-
- // silence stupid compiler warnings
- // i.e. MSVC warning C4189: 'f' : local variable is initialized but not referenced
- BOOST_TEST((f.value));
-
- BOOST_TEST((test("J", sym, make_vector('j', 'J'))));
- BOOST_TEST((test("H", sym, make_vector('h', 'H'))));
- BOOST_TEST((test("T", sym, make_vector('t', 'T'))));
- BOOST_TEST((test("K", sym, make_vector('k', 'K'))));
- BOOST_TEST((!test("", sym, 'x')));
-
- // test copy
- symbols<char, rule<output_iterator_type, char()> > sym2;
- sym2 = sym;
- BOOST_TEST((test("J", sym2, make_vector('j', 'J'))));
- BOOST_TEST((test("H", sym2, make_vector('h', 'H'))));
- BOOST_TEST((test("T", sym2, make_vector('t', 'T'))));
- BOOST_TEST((test("K", sym2, make_vector('k', 'K'))));
- BOOST_TEST((!test("", sym2, 'x')));
-
- // make sure it plays well with other generators
- BOOST_TEST((test("Jyo", sym << "yo", make_vector('j', 'J'))));
-
- sym.remove
- ('j')
- ('h')
- ;
-
- BOOST_TEST((!test("", sym, 'j')));
- BOOST_TEST((!test("", sym, 'h')));
- }
-
- { // basics
- symbols<std::string> sym;
-
- sym.add
- ("Joel")
- ("Hartmut")
- ("Tom")
- ("Kim")
- ;
-
- boost::mpl::true_ f =
- boost::mpl::bool_<boost::spirit::traits::is_generator<
- symbols<char, std::string> >::value>();
-
- // silence stupid compiler warnings
- // i.e. MSVC warning C4189: 'f' : local variable is initialized but not referenced
- BOOST_TEST((f.value));
-
- BOOST_TEST((test("Joel", sym, "Joel")));
- BOOST_TEST((test("Hartmut", sym, "Hartmut")));
- BOOST_TEST((test("Tom", sym, "Tom")));
- BOOST_TEST((test("Kim", sym, "Kim")));
- BOOST_TEST((!test("", sym, "X")));
-
- // test copy
- symbols<std::string> sym2;
- sym2 = sym;
- BOOST_TEST((test("Joel", sym2, "Joel")));
- BOOST_TEST((test("Hartmut", sym2, "Hartmut")));
- BOOST_TEST((test("Tom", sym2, "Tom")));
- BOOST_TEST((test("Kim", sym2, "Kim")));
- BOOST_TEST((!test("", sym2, "X")));
-
- // make sure it plays well with other generators
- BOOST_TEST((test("Joelyo", sym << "yo", "Joel")));
-
- sym.remove
- ("Joel")
- ("Hartmut")
- ;
-
- BOOST_TEST((!test("", sym, "Joel")));
- BOOST_TEST((!test("", sym, "Hartmut")));
- }
-
- { // lower/upper handling
- using namespace boost::spirit::ascii;
- using boost::spirit::karma::lower;
- using boost::spirit::karma::upper;
-
- symbols<char, std::string> sym;
- sym.add
- ('j', "Joel")
- ('h', "Hartmut")
- ('t', "Tom")
- ('k', "Kim")
- ;
-
- BOOST_TEST((test("joel", lower[sym], 'j')));
- BOOST_TEST((test("hartmut", lower[sym], 'h')));
- BOOST_TEST((test("tom", lower[sym], 't')));
- BOOST_TEST((test("kim", lower[sym], 'k')));
-
- BOOST_TEST((test("JOEL", upper[sym], 'j')));
- BOOST_TEST((test("HARTMUT", upper[sym], 'h')));
- BOOST_TEST((test("TOM", upper[sym], 't')));
- BOOST_TEST((test("KIM", upper[sym], 'k')));
-
- // make sure it plays well with other generators
- BOOST_TEST((test("joelyo", lower[sym] << "yo", 'j')));
- BOOST_TEST((test("JOELyo", upper[sym] << "yo", 'j')));
- }
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/karma/utree.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/utree.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,326 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2001-2010 Joel de Guzman
-// Copyright (c) 2010 Bryce Lelbach
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/mpl/print.hpp>
-
-#include <boost/spirit/include/support_utree.hpp>
-#include <boost/spirit/include/karma.hpp>
-
-#include <sstream>
-
-#include "test.hpp"
-
-int main()
-{
- using spirit_test::test;
- using spirit_test::test_delimited;
- using boost::spirit::utree;
- using boost::spirit::utree_type;
- using boost::spirit::utf8_string_range_type;
- using boost::spirit::utf8_string_type;
- using boost::spirit::utf8_symbol_type;
-
- using boost::spirit::karma::char_;
- using boost::spirit::karma::bool_;
- using boost::spirit::karma::int_;
- using boost::spirit::karma::double_;
- using boost::spirit::karma::string;
- using boost::spirit::karma::space;
- using boost::spirit::karma::rule;
-
- typedef spirit_test::output_iterator<char>::type output_iterator;
-
- // primitive data types
- {
- utree ut('x');
- BOOST_TEST(test("x", char_, ut));
-
- ut = false;
- BOOST_TEST(test("false", bool_, ut));
-
- ut = 123;
- BOOST_TEST(test("123", int_, ut));
-
- ut = 123.45;
- BOOST_TEST(test("123.45", double_, ut));
-
- ut = "abc";
- BOOST_TEST(test("abc", string, ut));
-
- ut = utf8_symbol_type("xyz");
- BOOST_TEST(test("xyz", string, ut));
- }
-
- // sequences
- {
- using boost::spirit::karma::digit;
- using boost::spirit::karma::repeat;
-
- utree ut;
- ut.push_back('x');
- ut.push_back('y');
- BOOST_TEST(test("xy", char_ << char_, ut));
-
- ut.clear();
- ut.push_back(123);
- ut.push_back(456);
- BOOST_TEST(test_delimited("123 456 ", int_ << int_, ut, space));
-
- ut.clear();
- ut.push_back(1.23);
- ut.push_back(4.56);
- BOOST_TEST(test_delimited("1.23 4.56 ", double_ << double_, ut, space));
-
- ut.clear();
- ut.push_back(1.23);
- ut.push_back("ab");
- BOOST_TEST(test("1.23ab", double_ << string, ut));
-
- ut.clear();
-
- rule<output_iterator, double()> r1 = double_;
- rule<output_iterator, utree()> r2 = double_;
-
- // ( 1.23 "a" "b" )
- ut.push_back(1.23);
- ut.push_back('a');
- ut.push_back('b');
- BOOST_TEST(test("1.23ab", double_ << *char_, ut));
- BOOST_TEST(test("1.23ab", r1 << *char_, ut));
- BOOST_TEST(test("1.23ab", r2 << *char_, ut));
-
- // ( ( 1.23 ) "a" "b" )
- ut.clear();
- utree ut1;
- ut1.push_back(1.23);
- ut.push_back(ut1);
- ut.push_back('a');
- ut.push_back('b');
- BOOST_TEST(test("1.23ab", r1 << *char_, ut));
- BOOST_TEST(test("1.23ab", r2 << *char_, ut));
-
- // ( "a" "b" 1.23 )
- ut.clear();
- ut.push_back('a');
- ut.push_back('b');
- ut.push_back(1.23);
- BOOST_TEST(test("ab1.23", repeat(2)[~digit] << double_, ut));
- BOOST_TEST(test("ab1.23", repeat(2)[~digit] << r1, ut));
- BOOST_TEST(test("ab1.23", repeat(2)[~digit] << r2, ut));
-
- // ( "a" "b" ( 1.23 ) )
- ut.clear();
- ut.push_back('a');
- ut.push_back('b');
- ut.push_back(ut1);
- BOOST_TEST(test("ab1.23", repeat(2)[~digit] << r1, ut));
- BOOST_TEST(test("ab1.23", repeat(2)[~digit] << r2, ut));
- }
-
- // kleene star
- {
- utree ut;
- ut.push_back('a');
- ut.push_back('b');
- BOOST_TEST(test("ab", *char_, ut));
-
- ut.clear();
- ut.push_back(123);
- ut.push_back(456);
- BOOST_TEST(test_delimited("123 456 ", *int_, ut, space));
-
- ut.clear();
- ut.push_back(1.23);
- ut.push_back(4.56);
- BOOST_TEST(test_delimited("1.23 4.56 ", *double_, ut, space));
- }
-
- // lists
- {
- // ( "a" "b" )
- rule<output_iterator, utree()> r1 = char_ % ',';
- utree ut;
- ut.push_back('a');
- ut.push_back('b');
- BOOST_TEST(test("a,b", char_ % ',', ut));
- BOOST_TEST(test("a,b", r1, ut));
-
- // ( ( "a" "b" ) )
- utree ut1;
- ut1.push_back(ut);
- BOOST_TEST(test("a,b", r1, ut1));
-
-// rule<output_iterator, std::vector<char>()> r2 = char_ % ',';
-// BOOST_TEST(test("a,b", r2, ut));
-// BOOST_TEST(test("a,b", r2, ut1));
-
- // ( ( "a" "b" ) ( "a" "b" ) )
- ut1.push_back(ut);
- BOOST_TEST(test("a,b a,b", r1 << ' ' << r1, ut1));
-
- // ( 123 456 )
- rule<output_iterator, utree()> r3 = int_ % ',';
- ut.clear();
- ut.push_back(123);
- ut.push_back(456);
- BOOST_TEST(test("123,456", int_ % ',', ut));
- BOOST_TEST(test("123,456", r3, ut));
-
- // ( ( 123 456 ) )
- ut1.clear();
- ut1.push_back(ut);
- BOOST_TEST(test("123,456", r3, ut1));
-
-// rule<output_iterator, std::vector<int>()> r4 = int_ % ',';
-// BOOST_TEST(test("123,456", r4, ut));
-// BOOST_TEST(test("123,456", r4, ut1));
-
- // ( ( 123 456 ) ( 123 456 ) )
- ut1.push_back(ut);
- BOOST_TEST(test("123,456 123,456", r3 << ' ' << r3, ut1));
-
- // ( 1.23 4.56 )
- rule<output_iterator, utree()> r5 = double_ % ',';
- ut.clear();
- ut.push_back(1.23);
- ut.push_back(4.56);
- BOOST_TEST(test("1.23,4.56", double_ % ',', ut));
- BOOST_TEST(test("1.23,4.56", r5, ut));
-
- // ( ( 1.23 4.56 ) )
- ut1.clear();
- ut1.push_back(ut);
- BOOST_TEST(test("1.23,4.56", r5, ut1));
-
-// rule<output_iterator, std::vector<double>()> r6 = double_ % ',';
-// BOOST_TEST(test("1.23,4.56", r6, ut));
-// BOOST_TEST(test("1.23,4.56", r6, ut1));
-
- // ( ( 1.23 4.56 ) ( 1.23 4.56 ) )
- ut1.push_back(ut);
- BOOST_TEST(test("1.23,4.56 1.23,4.56", r5 <<' ' << r5, ut1));
- }
-
- // alternatives
- {
- rule<output_iterator, utree()> r1 = int_ | double_;
- utree ut(10);
- BOOST_TEST(test("10", int_ | double_, ut));
- BOOST_TEST(test("10", r1, ut));
-
- ut = 10.2;
- BOOST_TEST(test("10.2", int_ | double_, ut));
- BOOST_TEST(test("10.2", r1, ut));
- }
-
- // optionals
- {
- utree ut('x');
- BOOST_TEST(test("x", -char_, ut));
-
- ut.clear();
- BOOST_TEST(test("", -char_, ut));
- }
-
- // as_string
- {
- using boost::spirit::karma::digit;
- using boost::spirit::karma::as_string;
-
- utree ut("xy");
- BOOST_TEST(test("xy", string, ut));
- BOOST_TEST(test("xy", as_string[*char_], ut));
- BOOST_TEST(test("x,y", as_string[char_ << ',' << char_], ut));
-
- ut.clear();
- ut.push_back("ab");
- ut.push_back(1.2);
- BOOST_TEST(test("ab1.2", as_string[*~digit] << double_, ut));
- BOOST_TEST(test("a,b1.2", as_string[~digit % ','] << double_, ut));
- }
-
- // as
- {
- using boost::spirit::karma::digit;
- using boost::spirit::karma::as;
-
- typedef as<std::string> as_string_type;
- as_string_type const as_string = as_string_type();
-
- typedef as<utf8_symbol_type> as_symbol_type;
- as_symbol_type const as_symbol = as_symbol_type();
-
- utree ut("xy");
- BOOST_TEST(test("xy", string, ut));
- BOOST_TEST(test("xy", as_string[*char_], ut));
- BOOST_TEST(test("x,y", as_string[char_ << ',' << char_], ut));
-
- ut.clear();
- ut.push_back("ab");
- ut.push_back(1.2);
- BOOST_TEST(test("ab1.2", as_string[*~digit] << double_, ut));
- BOOST_TEST(test("a,b1.2", as_string[~digit % ','] << double_, ut));
-
- ut = utf8_symbol_type("xy");
- BOOST_TEST(test("xy", string, ut));
- BOOST_TEST(test("xy", as_symbol[*char_], ut));
- BOOST_TEST(test("x,y", as_symbol[char_ << ',' << char_], ut));
-
- ut.clear();
- ut.push_back(utf8_symbol_type("ab"));
- ut.push_back(1.2);
- BOOST_TEST(test("ab1.2", as_symbol[*~digit] << double_, ut));
- BOOST_TEST(test("a,b1.2", as_symbol[~digit % ','] << double_, ut));
- }
-
- // typed basic_string rules
- {
- utree ut("buzz");
-
- rule<output_iterator, utf8_string_type()> r1 = string;
- rule<output_iterator, utf8_symbol_type()> r2 = string;
-
- BOOST_TEST(test("buzz", r1, ut));
-
- ut = utf8_symbol_type("bar");
- BOOST_TEST(test("bar", r2, ut));
- }
-
- // parameterized karma::string
- {
- utree ut("foo");
-
- rule<output_iterator, utf8_string_type()> r1 = string("foo");
- BOOST_TEST(test("foo", string("foo"), ut));
- BOOST_TEST(test("foo", r1, ut));
- }
-
- {
- using boost::spirit::karma::verbatim;
- using boost::spirit::karma::repeat;
- using boost::spirit::karma::space;
- using boost::spirit::karma::digit;
-
- utree ut;
- ut.push_back('x');
- ut.push_back('y');
- ut.push_back('c');
- BOOST_TEST(test_delimited("xy c ", verbatim[repeat(2)[char_]] << char_, ut, space));
- BOOST_TEST(test_delimited("x yc ", char_ << verbatim[*char_], ut, space));
-
- ut.clear();
- ut.push_back('a');
- ut.push_back('b');
- ut.push_back(1.2);
- BOOST_TEST(test_delimited("ab 1.2 ", verbatim[repeat(2)[~digit]] << double_, ut, space));
- }
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/lex/regression001.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression001.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,64 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2009 Pavel Baranov
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/lex_lexertl.hpp>
-
-#include <iostream>
-#include <string>
-
-using namespace boost::spirit;
-using namespace boost::spirit::lex;
-
-typedef const char * base_iterator;
-
-///////////////////////////////////////////////////////////////////////////////
-// Token definition
-///////////////////////////////////////////////////////////////////////////////
-template <typename Lexer>
-struct position_helper_tokens : lexer<Lexer>
-{
- position_helper_tokens()
- {
- // define tokens and associate them with the lexer
- eol = "\n";
- any = "[^\n]+";
-
- // associate tokens with the lexer
- this->self
- = eol
- | any
- ;
- }
-
- token_def<> any, eol;
-};
-
-int main()
-{
- // read input from the given file
- std::string str ("test");
-
- // token type
- typedef lexertl::token<base_iterator, lex::omit, boost::mpl::false_> token_type;
-
- // lexer type
- typedef lexertl::actor_lexer<token_type> lexer_type;
-
- // create the lexer object instance needed to invoke the lexical analysis
- position_helper_tokens<lexer_type> position_helper_lexer;
-
- // tokenize the given string, all generated tokens are discarded
- base_iterator first = str.c_str();
- base_iterator last = &first[str.size()];
-
- for(lexer_type::iterator_type i = position_helper_lexer.begin(first, last);
- i != position_helper_lexer.end() && (*i).is_valid(); i++ )
- {
- }
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/lex/regression002.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression002.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2009 Carl Barron
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/lex_lexertl.hpp>
-#include <iostream>
-#include <algorithm>
-#include "matlib.h"
-
-void test_matrix(std::vector<std::vector<double> > const& x)
-{
- BOOST_TEST(x.size() == 3);
- BOOST_TEST(x[0].size() == 2 && x[0][0] == 1 && x[0][1] == 2);
- BOOST_TEST(x[1].size() == 1 && x[1][0] == 3);
- BOOST_TEST(x[2].size() == 3 && x[2][0] == 4 && x[2][1] == 5 && x[2][2] == 6);
-}
-
-int main ()
-{
- std::string input("[[1,2][3][4,5,6]]");
-
- std::vector<std::vector<double> > results;
- typedef std::string::iterator iter;
- typedef boost::spirit::lex::lexertl::actor_lexer<
- boost::spirit::lex::lexertl::token<iter>
- > lexer_type;
-
- typedef matlib_tokens<lexer_type> matlib_type;
- matlib_type matrix(results);
- iter first = input.begin();
-
- try {
- BOOST_TEST(boost::spirit::lex::tokenize(first, input.end(), matrix));
- test_matrix(results);
- }
- catch (std::runtime_error const& e) {
- std::cerr << "caught exception: " << e.what() << std::endl;
- BOOST_TEST(false);
- }
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/lex/regression003.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression003.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,50 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2009 Carl Barron
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/lex_static_lexertl.hpp>
-
-#include <iostream>
-#include <string>
-#include <vector>
-#include <exception>
-
-#include "matlib_static.h"
-#include "matlib.h"
-
-void test_matrix(std::vector<std::vector<double> > const& x)
-{
- BOOST_TEST(x.size() == 3);
- BOOST_TEST(x[0].size() == 2 && x[0][0] == 1 && x[0][1] == 2);
- BOOST_TEST(x[1].size() == 1 && x[1][0] == 3);
- BOOST_TEST(x[2].size() == 3 && x[2][0] == 4 && x[2][1] == 5 && x[2][2] == 6);
-}
-
-int main()
-{
- std::string input("[[1,2][3][4,5,6]]");
- std::vector<std::vector<double> > results;
-
- typedef std::string::iterator iter;
- typedef boost::spirit::lex::lexertl::static_actor_lexer<
- boost::spirit::lex::lexertl::token<iter>,
- boost::spirit::lex::lexertl::static_::lexer_matlib
- > lexer_type;
-
- typedef matlib_tokens<lexer_type> matlib_type;
- matlib_type matrix(results);
- iter first = input.begin();
-
- try {
- BOOST_TEST(boost::spirit::lex::tokenize(first, input.end(), matrix));
- test_matrix(results);
- }
- catch (std::runtime_error const& e) {
- std::cerr << e.what() << '\n';
- BOOST_TEST(false);
- }
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/lex/regression003_generate.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression003_generate.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,32 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2009 Carl Barron
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/lex_lexertl.hpp>
-#include <boost/spirit/include/lex_generate_static_lexertl.hpp>
-
-#include <fstream>
-#include <vector>
-
-#include "matlib.h"
-
-int main(int argc, char* argv[])
-{
- std::vector<std::vector<double> > results;
-
- typedef std::string::iterator iter;
- typedef boost::spirit::lex::lexertl::actor_lexer<
- boost::spirit::lex::lexertl::token<iter>
- > lexer_type;
-
- typedef matlib_tokens<lexer_type> matlib_type;
- matlib_type matrix(results);
-
- std::ofstream out(argc < 2 ? "matlib_static.h" : argv[1]);
- BOOST_TEST(boost::spirit::lex::lexertl::generate_static_dfa(matrix, out, "matlib"));
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/lex/regression003_generate_switch.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression003_generate_switch.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,33 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2009 Carl Barron
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/lex_lexertl.hpp>
-#include <boost/spirit/include/lex_generate_static_lexertl.hpp>
-
-#include <fstream>
-#include <vector>
-
-#include "matlib.h"
-
-int main(int argc, char* argv[])
-{
- std::vector<std::vector<double> > results;
-
- typedef std::string::iterator iter;
- typedef boost::spirit::lex::lexertl::actor_lexer<
- boost::spirit::lex::lexertl::token<iter>
- > lexer_type;
-
- typedef matlib_tokens<lexer_type> matlib_type;
- matlib_type matrix(results);
-
- std::ofstream out(argc < 2 ? "matlib_static_switch.h" : argv[1]);
- BOOST_TEST(boost::spirit::lex::lexertl::generate_static_switch(
- matrix, out, "matlib_switch"));
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/lex/regression003_switch.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression003_switch.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,50 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2009 Carl Barron
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/lex_static_lexertl.hpp>
-
-#include <iostream>
-#include <string>
-#include <vector>
-#include <exception>
-
-#include "matlib_static_switch.h"
-#include "matlib.h"
-
-void test_matrix(std::vector<std::vector<double> > const& x)
-{
- BOOST_TEST(x.size() == 3);
- BOOST_TEST(x[0].size() == 2 && x[0][0] == 1 && x[0][1] == 2);
- BOOST_TEST(x[1].size() == 1 && x[1][0] == 3);
- BOOST_TEST(x[2].size() == 3 && x[2][0] == 4 && x[2][1] == 5 && x[2][2] == 6);
-}
-
-int main()
-{
- std::string input("[[1,2][3][4,5,6]]");
- std::vector<std::vector<double> > results;
-
- typedef std::string::iterator iter;
- typedef boost::spirit::lex::lexertl::static_actor_lexer<
- boost::spirit::lex::lexertl::token<iter>,
- boost::spirit::lex::lexertl::static_::lexer_matlib_switch
- > lexer_type;
-
- typedef matlib_tokens<lexer_type> matlib_type;
- matlib_type matrix(results);
- iter first = input.begin();
-
- try {
- BOOST_TEST(boost::spirit::lex::tokenize(first, input.end(), matrix));
- test_matrix(results);
- }
- catch (std::runtime_error const& e) {
- std::cerr << e.what() << '\n';
- BOOST_TEST(false);
- }
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/lex/regression004.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression004.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,90 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2009 Tor Brede Vekterli
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// #define BOOST_SPIRIT_LEXERTL_DEBUG
-#define BOOST_VARIANT_MINIMIZE_SIZE
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/config/warning_disable.hpp>
-
-#include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/include/lex_lexertl.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_statement.hpp>
-#include <boost/spirit/include/phoenix_container.hpp>
-
-#include <iostream>
-#include <string>
-
-namespace qi = boost::spirit::qi;
-namespace lex = boost::spirit::lex;
-
-enum tokenids
-{
- IDANY = lex::min_token_id + 10 // Lower 8 bits is 0x0a, same as '\n'
-};
-
-template <typename Lexer>
-struct word_count_tokens : lex::lexer<Lexer>
-{
- word_count_tokens()
- {
- this->self.add_pattern
- ("TEST", "A")
- ;
- word = "{TEST}";
- this->self.add
- (word)
- ('\n')
- (".", IDANY)
- ;
- }
- lex::token_def<std::string> word;
-};
-
-template <typename Iterator>
-struct word_count_grammar : qi::grammar<Iterator>
-{
- template <typename TokenDef>
- word_count_grammar(TokenDef const& tok)
- : word_count_grammar::base_type(start)
- , c(0), w(0), l(0)
- {
- using boost::phoenix::ref;
- using qi::lit;
- using qi::token;
-
- start = *( tok.word [++ref(w)]
- | lit('\n') [++ref(l)]
- | token(IDANY) [++ref(c)]
- )
- ;
- }
- std::size_t c, w, l;
- qi::rule<Iterator> start;
-};
-
-
-int main()
-{
- typedef lex::lexertl::token<
- const char*, boost::mpl::vector<std::string>
- > token_type;
-
- typedef lex::lexertl::lexer<token_type> lexer_type;
- typedef word_count_tokens<lexer_type>::iterator_type iterator_type;
- word_count_tokens<lexer_type> word_count; // Our lexer
- word_count_grammar<iterator_type> g (word_count); // Our parser
-
- std::string str ("A\nBCDEFGHI");
- char const* first = str.c_str();
- char const* last = &first[str.size()];
-
- BOOST_TEST(lex::tokenize_and_parse(first, last, word_count, g));
- BOOST_TEST(g.l == 1 && g.w == 1 && g.c == 8);
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/lex/regression005.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression005.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,92 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2009 Jean-Francois Ostiguy
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/config/warning_disable.hpp>
-
-#include <boost/spirit/include/lex_lexertl.hpp>
-#include <boost/spirit/include/qi.hpp>
-
-#include <string>
-#include <iostream>
-#include <sstream>
-
-namespace lex = boost::spirit::lex;
-namespace qi = boost::spirit::qi;
-namespace mpl = boost::mpl;
-
-template <typename Lexer>
-struct my_lexer : lex::lexer<Lexer>
-{
- my_lexer()
- {
- delimiter = "BEGIN|END";
- identifier = "[a-zA-Z][_\\.a-zA-Z0-9]*";
- ws = "[ \\t\\n]+";
- real = "([0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?)|([-+]?[1-9]+\\.?([eE][-+]?[0-9]+))";
- integer = "[0-9]+";
-
- this->self += ws[lex::_pass = lex::pass_flags::pass_ignore];
- this->self += delimiter;
- this->self += identifier;
- this->self += real;
- this->self += integer;
- this->self += '=';
- this->self += ';';
- }
-
- lex::token_def<> ws;
- lex::token_def<std::string> identifier;
- lex::token_def<int> integer;
- lex::token_def<double> real;
- lex::token_def<> delimiter;
-};
-
-template <typename Iterator>
-struct my_grammar : qi::grammar<Iterator>
-{
- template <typename TokenDef>
- my_grammar( TokenDef const& tok )
- : my_grammar::base_type(statement)
- {
- statement
- = qi::eoi
- | *(delimiter | declaration)
- ;
-
- delimiter = tok.delimiter >> tok.identifier;
- declaration = tok.identifier >> option >> ';';
- option = *(tok.identifier >> '=' >> (tok.real | tok.integer));
- }
-
- qi::rule<Iterator> statement, delimiter, declaration, option;
-};
-
-typedef lex::lexertl::token<char const*
- , mpl::vector<std::string, double, int> > token_type;
-typedef lex::lexertl::actor_lexer<token_type> lexer_type;
-typedef my_lexer<lexer_type>::iterator_type iterator_type;
-
-int main()
-{
- std::string test_string ("BEGIN section\n");
- // we introduce a syntax error: ";;" instead of ";" as a terminator.
- test_string += "Identity;;\n"; // this will make the parser fail
- test_string += "END section\n" ;
-
- char const* first = &test_string[0];
- char const* last = &first[test_string.size()];
-
- my_lexer<lexer_type> lexer;
- my_grammar<iterator_type> grammar(lexer);
-
- BOOST_TEST(lex::tokenize_and_parse(first, last, lexer, grammar));
- BOOST_TEST(first != last);
-
- return boost::report_errors();
-}
-
-

Deleted: branches/release/libs/spirit/test/lex/regression006.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression006.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,132 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2010 Sergey "GooRoo" Olendarenko
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/config/warning_disable.hpp>
-
-#include <cstdlib>
-#include <iostream>
-#include <locale>
-#include <string>
-
-#include <boost/spirit/include/lex_lexertl.hpp>
-#include <boost/spirit/include/phoenix_object.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_statement.hpp>
-#include <boost/spirit/include/phoenix_container.hpp>
-
-namespace lex = boost::spirit::lex;
-namespace phoenix = boost::phoenix;
-
-typedef std::basic_string<wchar_t> wstring_type;
-
-///////////////////////////////////////////////////////////////////////////////
-enum tokenids
-{
- ID_IDENT = 1,
- ID_CONSTANT,
- ID_OPERATION,
- ID_BRACKET
-};
-
-///////////////////////////////////////////////////////////////////////////////
-struct test_data
-{
- int tokenid;
- wstring_type value;
-};
-
-// alpha+x1*(2.836-x2[i])
-test_data data[] =
-{
- { ID_IDENT, L"alpha" },
- { ID_OPERATION, L"+" },
- { ID_IDENT, L"x1" },
- { ID_OPERATION, L"*" },
- { ID_BRACKET, L"(" },
- { ID_CONSTANT, L"2.836" },
- { ID_OPERATION, L"-" },
- { ID_IDENT, L"x2" },
- { ID_BRACKET, L"[" },
- { ID_IDENT, L"i" },
- { ID_BRACKET, L"]" },
- { ID_BRACKET, L")" }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-struct test_impl
-{
- template <typename TokenId, typename Value>
- struct result { typedef void type; };
-
- template <typename TokenId, typename Value>
- void operator()(TokenId const& tokenid, Value const& val) const
- {
- BOOST_TEST(sequence_counter < sizeof(data)/sizeof(data[0]));
- BOOST_TEST(data[sequence_counter].tokenid == tokenid);
- BOOST_TEST(0 == val.which());
-
- typedef boost::iterator_range<wstring_type::iterator> iterator_range;
- iterator_range r = boost::get<iterator_range>(val);
- BOOST_TEST(data[sequence_counter].value ==
- wstring_type(r.begin(), r.end()));
-
- ++sequence_counter;
- }
-
- static int sequence_counter;
-};
-int test_impl::sequence_counter = 0;
-
-phoenix::function<test_impl> const test = test_impl();
-
-///////////////////////////////////////////////////////////////////////////////
-template <typename Lexer>
-struct mega_tokens : lex::lexer<Lexer>
-{
- mega_tokens()
- : identifier(L"[a-zA-Z_][a-zA-Z0-9_]*", ID_IDENT)
- , constant (L"[0-9]+(\\.[0-9]+)?", ID_CONSTANT)
- , operation (L"[\\+\\-\\*/]", ID_OPERATION)
- , bracket (L"[\\(\\)\\[\\]]", ID_BRACKET)
- {
- using lex::_tokenid;
- using lex::_val;
-
- this->self
- = operation [ test(_tokenid, _val) ]
- | identifier [ test(_tokenid, _val) ]
- | constant [ test(_tokenid, _val) ]
- | bracket [ test(_tokenid, _val) ]
- ;
- }
-
- lex::token_def<wchar_t, wchar_t> operation;
- lex::token_def<wstring_type, wchar_t> identifier;
- lex::token_def<double, wchar_t> constant;
- lex::token_def<wchar_t, wchar_t> bracket;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-int main()
-{
- typedef wstring_type::iterator base_iterator;
- typedef lex::lexertl::token<
- base_iterator, boost::mpl::vector<wchar_t, wstring_type, double>
- > token_type;
- typedef lex::lexertl::actor_lexer<token_type> lexer_type;
- typedef mega_tokens<lexer_type>::iterator_type iterator_type;
-
- mega_tokens<lexer_type> mega_lexer;
-
- wstring_type exampleStr = L"alpha+x1*(2.836-x2[i])";
- base_iterator first = exampleStr.begin();
-
- BOOST_TEST(lex::tokenize(first, exampleStr.end(), mega_lexer));
- BOOST_TEST(test_impl::sequence_counter == sizeof(data)/sizeof(data[0]));
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/lex/regression007.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression007.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,108 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2010 Mathias Gaunard
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// #define BOOST_SPIRIT_LEXERTL_DEBUG
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/support_multi_pass.hpp>
-#include <boost/spirit/include/classic_position_iterator.hpp>
-#include <boost/spirit/include/lex_lexertl.hpp>
-
-#include <boost/spirit/home/phoenix/core.hpp>
-#include <boost/spirit/home/phoenix/operator.hpp>
-#include <boost/spirit/home/phoenix/statement.hpp>
-#include <boost/spirit/home/phoenix/object.hpp>
-#include <boost/spirit/home/phoenix/stl.hpp>
-
-namespace spirit = boost::spirit;
-namespace lex = spirit::lex;
-namespace phoenix = boost::phoenix;
-
-typedef spirit::classic::position_iterator2<
- spirit::multi_pass<std::istreambuf_iterator<char> >
-> file_iterator;
-
-typedef boost::iterator_range<file_iterator> file_range;
-
-inline file_iterator
-make_file_iterator(std::istream& input, const std::string& filename)
-{
- return file_iterator(
- spirit::make_default_multi_pass(
- std::istreambuf_iterator<char>(input)),
- spirit::multi_pass<std::istreambuf_iterator<char> >(),
- filename);
-}
-
-struct identifier
-{
- identifier(file_iterator begin, file_iterator end)
- {
- }
-};
-
-struct string_literal
-{
- string_literal(file_iterator begin, file_iterator end)
- {
- }
-};
-
-typedef lex::lexertl::token<
- file_iterator, boost::mpl::vector<identifier, string_literal>
-> token_type;
-
-struct lexer
- : lex::lexer<lex::lexertl::actor_lexer<token_type> >
-{
- lexer()
- : id("[a-zA-Z0-9]+", 1)
- , st("'[^'\\n]*'", 2)
- {
- self("ST") =
- st [ lex::_state = "INITIAL" ]
- ;
-
- self("*") =
- id [ lex::_state = "ST" ]
- | lex::token_def<>(".", 3) [ lex::_state = "ST" ]
- ;
- }
-
- lex::token_def<identifier> id;
- lex::token_def<string_literal> st;
-};
-
-typedef lexer::iterator_type token_iterator;
-
-int main()
-{
- std::stringstream ss;
- ss << "foo 'bar'";
-
- file_iterator begin = make_file_iterator(ss, "SS");
- file_iterator end;
-
- lexer l;
- token_iterator begin2 = l.begin(begin, end, "ST");
- token_iterator end2 = l.end();
-
- std::size_t test_data[] = { 1, 3, 2 };
- std::size_t const test_data_size = sizeof(test_data)/sizeof(test_data[0]);
-
- token_iterator it = begin2;
- std::size_t i = 0;
- for (/**/; it != end2 && i < test_data_size; ++it, ++i)
- {
- BOOST_TEST(it->id() == test_data[i]);
- }
- BOOST_TEST(it == end2);
- BOOST_TEST(i == test_data_size);
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/lex/regression008.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression008.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,115 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2010 Mathias Gaunard
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// #define BOOST_SPIRIT_LEXERTL_DEBUG 1
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/support_multi_pass.hpp>
-#include <boost/spirit/include/classic_position_iterator.hpp>
-#include <boost/spirit/include/lex_lexertl.hpp>
-
-#include <boost/spirit/home/phoenix/core.hpp>
-#include <boost/spirit/home/phoenix/operator.hpp>
-#include <boost/spirit/home/phoenix/statement.hpp>
-#include <boost/spirit/home/phoenix/object.hpp>
-#include <boost/spirit/home/phoenix/stl.hpp>
-
-namespace spirit = boost::spirit;
-namespace lex = spirit::lex;
-namespace phoenix = boost::phoenix;
-
-typedef spirit::classic::position_iterator2<
- spirit::multi_pass<std::istreambuf_iterator<char> >
-> file_iterator;
-
-inline file_iterator
-make_file_iterator(std::istream& input, const std::string& filename)
-{
- return file_iterator(
- spirit::make_default_multi_pass(
- std::istreambuf_iterator<char>(input)),
- spirit::multi_pass<std::istreambuf_iterator<char> >(),
- filename);
-}
-
-struct identifier
-{
- identifier(file_iterator begin, file_iterator end)
- {
- }
-};
-
-struct string_literal
-{
- string_literal(file_iterator begin, file_iterator end)
- {
- }
-};
-
-typedef lex::lexertl::token<
- file_iterator, boost::mpl::vector<identifier, string_literal>
-> token_type;
-
-struct lexer
- : lex::lexer<lex::lexertl::actor_lexer<token_type> >
-{
- lexer()
- : id("[a-zA-Z0-9]+", 1)
- , st("'[^'\\n]*'", 2)
- {
- self = id [
- lex::_state = "ST"
- ]
- | lex::token_def<>(".", 3) [
- lex::_state = "ST"
- ]
- ;
-
- self("ST") =
- st [
- lex::_state = "INITIAL"
- ]
- | lex::token_def<>(".", 4) [
- lex::_state = "INITIAL"
- , lex::_pass = lex::pass_flags::pass_fail
- ]
- ;
- }
-
- lex::token_def<identifier> id;
- lex::token_def<string_literal> st;
-};
-
-typedef lexer::iterator_type token_iterator;
-
-int main()
-{
- std::stringstream ss;
- ss << "foo 'bar'";
-
- file_iterator begin = make_file_iterator(ss, "SS");
- file_iterator end;
-
- lexer l;
- token_iterator begin2 = l.begin(begin, end, "ST");
- token_iterator end2 = l.end();
-
- std::size_t test_data[] = { 1, 3, 2 };
- std::size_t const test_data_size = sizeof(test_data)/sizeof(test_data[0]);
-
- token_iterator it = begin2;
- std::size_t i = 0;
- for (/**/; it != end2 && i < test_data_size; ++it, ++i)
- {
- BOOST_TEST(it->id() == test_data[i]);
- }
- BOOST_TEST(it == end2);
- BOOST_TEST(i == test_data_size);
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/lex/regression009.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression009.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,103 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2010 Mathias Gaunard
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#define BOOST_SPIRIT_DEBUG 1 // required for token streaming
-// #define BOOST_SPIRIT_LEXERTL_DEBUG 1
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/support_multi_pass.hpp>
-#include <boost/spirit/include/classic_position_iterator.hpp>
-#include <boost/spirit/include/lex_lexertl.hpp>
-
-#include <boost/spirit/home/phoenix/core.hpp>
-#include <boost/spirit/home/phoenix/operator.hpp>
-#include <boost/spirit/home/phoenix/statement.hpp>
-#include <boost/spirit/home/phoenix/object.hpp>
-
-#include <sstream>
-
-namespace spirit = boost::spirit;
-namespace lex = spirit::lex;
-namespace phoenix = boost::phoenix;
-
-typedef spirit::classic::position_iterator2<
- spirit::multi_pass<std::istreambuf_iterator<char> >
-> file_iterator;
-
-typedef boost::iterator_range<file_iterator> file_range;
-
-inline file_iterator
-make_file_iterator(std::istream& input, const std::string& filename)
-{
- return file_iterator(
- spirit::make_default_multi_pass(
- std::istreambuf_iterator<char>(input)),
- spirit::multi_pass<std::istreambuf_iterator<char> >(),
- filename);
-}
-
-struct string_literal
-{
- string_literal(file_iterator begin, file_iterator end)
- {
- }
-};
-
-typedef lex::lexertl::token<
- file_iterator, boost::mpl::vector<string_literal>
-> token_type;
-
-struct lexer
- : lex::lexer<lex::lexertl::actor_lexer<token_type> >
-{
- lexer() : st("'[^'\\n]*'", 1)
- {
- lex::token_def<> string_lookahead('\'');
- self("LA") = string_lookahead;
-
- // make sure lookahead is implicitly evaluated using the lexer state
- // the token_def has been associated with
- self = st [
- phoenix::if_(lex::lookahead(string_lookahead)) [ lex::more() ]
- ]
- ;
- }
-
- lex::token_def<string_literal> st;
-};
-
-typedef lexer::iterator_type token_iterator;
-
-int main()
-{
- std::stringstream ss;
- ss << "'foo''bar'";
-
- file_iterator begin = make_file_iterator(ss, "SS");
- file_iterator end;
-
- lexer l;
- token_iterator begin2 = l.begin(begin, end);
- token_iterator end2 = l.end();
-
- char const* test_data[] = { "1,'foo'", "1,'foo''bar'" };
- std::size_t const test_data_size = sizeof(test_data)/sizeof(test_data[0]);
-
- token_iterator it = begin2;
- std::size_t i = 0;
- for (/**/; it != end2 && i < test_data_size; ++it, ++i)
- {
- std::stringstream ss;
- ss << it->id() << "," << *it;
- BOOST_TEST(ss.str() == test_data[i]);
- }
- BOOST_TEST(it == end2);
- BOOST_TEST(i == test_data_size);
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/lex/regression010.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/regression010.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,100 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2010 Mathias Gaunard
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// This test makes sure that the BOL state (begin of line) is properly reset
-// if a token matched at the beginning of a line is discarded using
-// lex::pass_fail.
-
-// #define BOOST_SPIRIT_LEXERTL_DEBUG 1
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/support_multi_pass.hpp>
-#include <boost/spirit/include/classic_position_iterator.hpp>
-#include <boost/spirit/include/lex_lexertl.hpp>
-
-#include <boost/spirit/home/phoenix/core.hpp>
-#include <boost/spirit/home/phoenix/operator.hpp>
-#include <boost/spirit/home/phoenix/statement.hpp>
-#include <boost/spirit/home/phoenix/object.hpp>
-
-namespace spirit = boost::spirit;
-namespace lex = spirit::lex;
-namespace phoenix = boost::phoenix;
-
-typedef spirit::classic::position_iterator2<
- spirit::multi_pass<std::istreambuf_iterator<char> >
-> file_iterator;
-
-inline file_iterator
-make_file_iterator(std::istream& input, const std::string& filename)
-{
- return file_iterator(
- spirit::make_default_multi_pass(
- std::istreambuf_iterator<char>(input)),
- spirit::multi_pass<std::istreambuf_iterator<char> >(),
- filename);
-}
-
-typedef lex::lexertl::token<file_iterator> token_type;
-
-struct lexer
- : lex::lexer<lex::lexertl::actor_lexer<token_type> >
-{
- lexer() : word("^[a-zA-Z0-9]+$", 1)
- {
- self = word [
- lex::_state = "O"
- ]
- | lex::token_def<>("!.*$") [
- lex::_state = "O"
- , lex::_pass = lex::pass_flags::pass_ignore
- ]
- | lex::token_def<>('\n', 2) [
- lex::_state = "O"
- ]
- ;
-
- self("O") =
- lex::token_def<>(".") [
- lex::_state = "INITIAL"
- , lex::_pass = lex::pass_flags::pass_fail
- ]
- ;
- }
-
- lex::token_def<> word;
-};
-
-typedef lexer::iterator_type token_iterator;
-
-int main()
-{
- std::stringstream ss;
- ss << "!foo\nbar\n!baz";
-
- file_iterator begin = make_file_iterator(ss, "SS");
- file_iterator end;
-
- lexer l;
- token_iterator begin2 = l.begin(begin, end);
- token_iterator end2 = l.end();
-
- std::size_t test_data[] = { 2, 1, 2 };
- std::size_t const test_data_size = sizeof(test_data)/sizeof(test_data[0]);
-
- token_iterator it = begin2;
- std::size_t i = 0;
- for (/**/; it != end2 && i < test_data_size; ++it, ++i)
- {
- BOOST_TEST(it->id() == test_data[i]);
- }
- BOOST_TEST(it == end2);
- BOOST_TEST(i == test_data_size);
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/lex/state_switcher_test.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/state_switcher_test.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,90 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/include/lex_lexertl.hpp>
-#include "test_parser.hpp"
-
-///////////////////////////////////////////////////////////////////////////////
-// Token definition
-///////////////////////////////////////////////////////////////////////////////
-template <typename Lexer>
-struct switch_state_tokens : boost::spirit::lex::lexer<Lexer>
-{
- switch_state_tokens()
- {
- // define tokens and associate them with the lexer
- identifier = "[a-zA-Z_][a-zA-Z0-9_]*";
- this->self = identifier;
-
- // any token definition to be used as the skip parser during parsing
- // has to be associated with a separate lexer state (here 'WS')
- white_space = "[ \\t\\n]+";
- this->self("WS") = white_space;
-
- separators = "[,;]";
- this->self("SEP") = separators;
- }
-
- boost::spirit::lex::token_def<> identifier, white_space, separators;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-int main()
-{
- using namespace boost::spirit;
- using namespace boost::spirit::qi;
- using namespace spirit_test;
-
- typedef std::string::iterator base_iterator_type;
- typedef boost::spirit::lex::lexertl::token<base_iterator_type> token_type;
- typedef boost::spirit::lex::lexertl::lexer<token_type> lexer_type;
-
- {
- // the tokens class will be initialized inside the test_parser function
- switch_state_tokens<lexer_type> lex;
-
- BOOST_TEST(test_parser("ident", lex.identifier, lex));
- BOOST_TEST(!test_parser("ident", set_state("WS") >> lex.identifier, lex));
- BOOST_TEST(!test_parser("ident", in_state("WS")[lex.identifier], lex));
-
- BOOST_TEST(test_parser("\t \n", set_state("WS") >> lex.white_space, lex));
- BOOST_TEST(test_parser("\t \n", in_state("WS")[lex.white_space], lex));
- BOOST_TEST(!test_parser("\t \n", lex.white_space, lex));
- }
-
- {
- // the tokens class will be initialized inside the test_parser function
- switch_state_tokens<lexer_type> lex;
-
- BOOST_TEST(test_parser(",ident", lex.identifier, lex,
- in_state("SEP")[lex.separators]));
- BOOST_TEST(!test_parser(";ident", set_state("WS") >> lex.identifier,
- lex, in_state("SEP")[lex.separators]));
- BOOST_TEST(!test_parser(",ident", in_state("WS")[lex.identifier],
- lex, in_state("SEP")[lex.separators]));
-
- BOOST_TEST(test_parser(",\t \n", set_state("WS") >> lex.white_space,
- lex, in_state("SEP")[lex.separators]));
- BOOST_TEST(test_parser(";\t \n", in_state("WS")[lex.white_space],
- lex, in_state("SEP")[lex.separators]));
- BOOST_TEST(!test_parser(",\t \n", lex.white_space, lex,
- in_state("SEP")[lex.separators]));
- }
-
- {
- // the tokens class will be initialized inside the test_parser function
- switch_state_tokens<lexer_type> lex;
-
- BOOST_TEST(test_parser("ident\t \n",
- lex.identifier >> set_state("WS") >> lex.white_space, lex));
- BOOST_TEST(test_parser("\t \nident",
- in_state("WS")[lex.white_space] >> lex.identifier, lex));
- }
-
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/qi/attr_with_action.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/attr_with_action.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,27 +0,0 @@
-// Copyright (c) 2010 Daniel James
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// this is a compile only regression test
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/spirit/include/qi.hpp>
-
-namespace qi = boost::spirit::qi;
-
-struct source_mode {};
-
-struct process_type
-{
- template <typename A, typename B, typename C>
- void operator()(A&, B&, C&) const {}
-};
-
-int main()
-{
- process_type process;
- qi::rule<char const*> x = qi::attr(source_mode()) [process];
- return 0;
-}
\ No newline at end of file

Deleted: branches/release/libs/spirit/test/qi/attribute.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/attribute.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,267 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2010 Hartmut Kaiser
- Copyright (c) 2001-2010 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/fusion/include/struct.hpp>
-#include <boost/fusion/include/nview.hpp>
-
-#include <boost/spirit/include/qi_char.hpp>
-#include <boost/spirit/include/qi_string.hpp>
-#include <boost/spirit/include/qi_numeric.hpp>
-#include <boost/spirit/include/qi_operator.hpp>
-#include <boost/spirit/include/qi_nonterminal.hpp>
-#include <boost/spirit/include/qi_auxiliary.hpp>
-
-#include <iostream>
-#include <vector>
-#include <string>
-#include "test.hpp"
-
-///////////////////////////////////////////////////////////////////////////////
-struct test_data
-{
- std::string s1;
- std::string s2;
- int i1;
- double d1;
- std::string s3;
-};
-
-BOOST_FUSION_ADAPT_STRUCT(
- test_data,
- (int, i1)
- (std::string, s1)
- (std::string, s2)
- (std::string, s3)
- (double, d1)
-)
-
-///////////////////////////////////////////////////////////////////////////////
-struct test_int_data1
-{
- int i;
-};
-
-// we provide a custom attribute transformation taking copy of the actual
-// attribute value, simulating more complex type transformations
-namespace boost { namespace spirit { namespace traits
-{
- template <>
- struct transform_attribute<test_int_data1, int, qi::domain>
- {
- typedef int type;
- static int pre(test_int_data1& d) { return d.i; }
- static void post(test_int_data1& d, int i) { d.i = i; }
- static void fail(test_int_data1&) {}
- };
-}}}
-
-///////////////////////////////////////////////////////////////////////////////
-struct test_int_data2
-{
- int i;
-};
-
-// we provide a simple custom attribute transformation utilizing passing the
-// actual attribute by reference
-namespace boost { namespace spirit { namespace traits
-{
- template <>
- struct transform_attribute<test_int_data2, int, qi::domain>
- {
- typedef int& type;
- static int& pre(test_int_data2& d) { return d.i; }
- static void post(test_int_data2&, int const&) {}
- static void fail(test_int_data2&) {}
- };
-}}}
-
-///////////////////////////////////////////////////////////////////////////////
-int
-main()
-{
- using spirit_test::test_attr;
- namespace qi = boost::spirit::qi;
- namespace fusion = boost::fusion;
-
- // testing attribute reordering in a fusion sequence as explicit attribute
- {
- typedef fusion::result_of::as_nview<test_data, 1, 0, 4>::type
- test_view;
-
- test_data d1 = { "", "", 0, 0.0, "" };
- test_view v1 = fusion::as_nview<1, 0, 4>(d1);
- BOOST_TEST(test_attr("s1,2,1.5",
- *(qi::char_ - ',') >> ',' >> qi::int_ >> ',' >> qi::double_, v1));
- BOOST_TEST(d1.i1 == 2 && d1.s1 == "s1" && d1.d1 == 1.5);
-
- test_data d2 = { "", "", 0, 0.0, "" };
- test_view v2 = fusion::as_nview<1, 0, 4>(d2);
- BOOST_TEST(test_attr("s1, 2, 1.5 ",
- *(qi::char_ - ',') >> ',' >> qi::int_ >> ',' >> qi::double_,
- v2, qi::space));
- BOOST_TEST(d2.i1 == 2 && d2.s1 == "s1" && d2.d1 == 1.5);
- }
-
- {
- // this won't work without the second template argument as *digit
- // exposes a vector<char> as its attribute
- std::string str;
- BOOST_TEST(test_attr("123"
- , qi::attr_cast<std::string, std::string>(*qi::digit), str));
- BOOST_TEST(str == "123");
- }
-
- // testing attribute reordering in a fusion sequence involving a rule
- {
- typedef fusion::result_of::as_nview<test_data, 1, 0, 4>::type
- test_view;
- std::vector<test_data> v;
-
- qi::rule<char const*, test_view()> r1 =
- *(qi::char_ - ',') >> ',' >> qi::int_ >> ',' >> qi::double_;
-
- BOOST_TEST(test_attr("s1,2,1.5\ns2,4,3.5", r1 % qi::eol, v));
- BOOST_TEST(v.size() == 2 &&
- v[0].i1 == 2 && v[0].s1 == "s1" && v[0].d1 == 1.5 &&
- v[1].i1 == 4 && v[1].s1 == "s2" && v[1].d1 == 3.5);
-
- qi::rule<char const*, test_view(), qi::blank_type> r2 =
- *(qi::char_ - ',') >> ',' >> qi::int_ >> ',' >> qi::double_;
-
- v.clear();
- BOOST_TEST(test_attr("s1, 2, 1.5 \n s2, 4, 3.5", r2 % qi::eol, v, qi::blank));
- BOOST_TEST(v.size() == 2 &&
- v[0].i1 == 2 && v[0].s1 == "s1" && v[0].d1 == 1.5 &&
- v[1].i1 == 4 && v[1].s1 == "s2" && v[1].d1 == 3.5);
- }
-
- // testing explicit transformation if attribute needs to be copied
- {
- test_int_data1 d = { 0 };
- BOOST_TEST(test_attr("1", qi::attr_cast(qi::int_), d));
- BOOST_TEST(d.i == 1);
- BOOST_TEST(test_attr("2", qi::attr_cast<test_int_data1>(qi::int_), d));
- BOOST_TEST(d.i == 2);
- BOOST_TEST(test_attr("3", qi::attr_cast<test_int_data1, int>(qi::int_), d));
- BOOST_TEST(d.i == 3);
- }
-
- {
- std::vector<test_int_data1> v;
-
- BOOST_TEST(test_attr("1,2", qi::attr_cast(qi::int_) % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
-
- v.clear();
- BOOST_TEST(test_attr("1,2"
- , qi::attr_cast<test_int_data1>(qi::int_) % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
-
- v.clear();
- BOOST_TEST(test_attr("1,2"
- , qi::attr_cast<test_int_data1, int>(qi::int_) % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
- }
-
- {
- std::vector<test_int_data1> v;
- qi::rule<char const*, int()> r = qi::int_;
-
- BOOST_TEST(test_attr("1,2", r % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
- }
-
- {
- std::vector<double> v;
- qi::rule<char const*, int()> r = qi::int_;
-
- BOOST_TEST(test_attr("1,2", r % ',', v));
- BOOST_TEST(v.size() == 2 && v[0] == 1.0 && v[1] == 2.0);
- }
-
- {
- std::vector<test_int_data1> v;
-
-// this won't compile as there is no defined transformation for
-// test_int_data1 and double
-// BOOST_TEST(test_attr("1.0,2.2", qi::attr_cast(qi::double_) % ',', v));
-// BOOST_TEST(test_attr("1.0,2.2"
-// , qi::attr_cast<test_int_data1>(qi::double_) % ',', v));
-
- BOOST_TEST(test_attr("1.0,2.2"
- , qi::attr_cast<test_int_data1, int>(qi::double_) % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
-
- qi::rule<char const*, int()> r = qi::double_;
-
- v.clear();
- BOOST_TEST(test_attr("1.0,2.0", r % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
- }
-
- // testing explicit transformation if attribute is taken by reference
- {
- test_int_data2 d = { 0 };
- BOOST_TEST(test_attr("1", qi::attr_cast(qi::int_), d));
- BOOST_TEST(d.i == 1);
- BOOST_TEST(test_attr("2", qi::attr_cast<test_int_data2>(qi::int_), d));
- BOOST_TEST(d.i == 2);
- BOOST_TEST(test_attr("3", qi::attr_cast<test_int_data2, int>(qi::int_), d));
- BOOST_TEST(d.i == 3);
- }
-
- {
- std::vector<test_int_data2> v;
-
- BOOST_TEST(test_attr("1,2", qi::attr_cast(qi::int_) % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
-
- v.clear();
- BOOST_TEST(test_attr("1,2"
- , qi::attr_cast<test_int_data2>(qi::int_) % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
-
- v.clear();
- BOOST_TEST(test_attr("1,2"
- , qi::attr_cast<test_int_data2, int>(qi::int_) % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
- }
-
- {
- std::vector<test_int_data2> v;
- qi::rule<char const*, int()> r = qi::int_;
-
- BOOST_TEST(test_attr("1,2", r % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
- }
-
- {
- std::vector<test_int_data2> v;
-
-// this won't compile as there is no defined transformation for
-// test_int_data2 and double
-// BOOST_TEST(test_attr("1.0,2.2", qi::attr_cast(qi::double_) % ',', v));
-// BOOST_TEST(test_attr("1.0,2.2"
-// , qi::attr_cast<test_int_data2>(qi::double_) % ',', v));
-
- BOOST_TEST(test_attr("1.0,2.2"
- , qi::attr_cast<test_int_data2, int>(qi::double_) % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
-
- qi::rule<char const*, int()> r = qi::double_;
-
- v.clear();
- BOOST_TEST(test_attr("1.0,2.0", r % ',', v));
- BOOST_TEST(v.size() == 2 && v[0].i == 1 && v[1].i == 2);
- }
-
- return boost::report_errors();
-}

Modified: branches/release/libs/spirit/test/qi/auto.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/auto.cpp (original)
+++ branches/release/libs/spirit/test/qi/auto.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -118,14 +118,6 @@
     }
 
     {
- // test primitive types
- bool b = false;
- BOOST_TEST(test_create_parser_auto("true", b) && b == true);
- int i = 0;
- BOOST_TEST(test_create_parser_auto("1", i) && i == 1);
- double d = 0;
- BOOST_TEST(test_create_parser_auto("1.1", d) && d == 1.1);
-
         // test containers
         std::vector<int> v;
         BOOST_TEST(test_create_parser_auto("0 1 2", v) && v.size() == 3 &&

Deleted: branches/release/libs/spirit/test/qi/bool.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/bool.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,116 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2010 Hartmut Kaiser
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/support_argument.hpp>
-#include <boost/spirit/include/qi_char.hpp>
-#include <boost/spirit/include/qi_numeric.hpp>
-#include <boost/spirit/include/qi_directive.hpp>
-#include <boost/cstdint.hpp>
-#include "test.hpp"
-
-///////////////////////////////////////////////////////////////////////////////
-struct backwards_bool_policies : boost::spirit::qi::bool_policies<>
-{
- // we want to interpret a 'true' spelled backwards as 'false'
- template <typename Iterator, typename Attribute>
- static bool
- parse_false(Iterator& first, Iterator const& last, Attribute& attr)
- {
- namespace spirit = boost::spirit;
- namespace qi = boost::spirit::qi;
- if (qi::detail::string_parse("eurt", first, last, qi::unused))
- {
- spirit::traits::assign_to(false, attr); // result is false
- return true;
- }
- return false;
- }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-struct test_bool_type
-{
- test_bool_type(bool b) : b(b) {} // provide conversion
- bool b;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-int main()
-{
- using spirit_test::test_attr;
- using spirit_test::test;
- using boost::spirit::qi::bool_;
-
- {
- BOOST_TEST(test("true", bool_));
- BOOST_TEST(test("false", bool_));
- BOOST_TEST(!test("fasle", bool_));
- }
-
- {
- using boost::spirit::qi::true_;
- using boost::spirit::qi::false_;
-
- BOOST_TEST(test("true", true_));
- BOOST_TEST(!test("true", false_));
- BOOST_TEST(test("false", false_));
- BOOST_TEST(!test("false", true_));
- }
-
- {
- using boost::spirit::qi::true_;
- using boost::spirit::qi::false_;
- using boost::spirit::qi::no_case;
-
- BOOST_TEST(test("True", no_case[bool_]));
- BOOST_TEST(test("False", no_case[bool_]));
- BOOST_TEST(test("True", no_case[true_]));
- BOOST_TEST(test("False", no_case[false_]));
- }
-
- {
- bool b = false;
- BOOST_TEST(test_attr("true", bool_, b) && b);
- BOOST_TEST(test_attr("false", bool_, b) && !b);
- BOOST_TEST(!test_attr("fasle", bool_, b));
- }
-
- {
- typedef boost::spirit::qi::bool_parser<bool, backwards_bool_policies>
- backwards_bool_type;
- backwards_bool_type const backwards_bool = backwards_bool_type();
-
- BOOST_TEST(test("true", backwards_bool));
- BOOST_TEST(test("eurt", backwards_bool));
- BOOST_TEST(!test("false", backwards_bool));
- BOOST_TEST(!test("fasle", backwards_bool));
-
- bool b = false;
- BOOST_TEST(test_attr("true", backwards_bool, b) && b);
- BOOST_TEST(test_attr("eurt", backwards_bool, b) && !b);
- BOOST_TEST(!test_attr("false", backwards_bool, b));
- BOOST_TEST(!test_attr("fasle", backwards_bool, b));
- }
-
- {
- typedef boost::spirit::qi::bool_parser<test_bool_type>
- bool_test_type;
- bool_test_type const test_bool = bool_test_type();
-
- BOOST_TEST(test("true", test_bool));
- BOOST_TEST(test("false", test_bool));
- BOOST_TEST(!test("fasle", test_bool));
-
- test_bool_type b = false;
- BOOST_TEST(test_attr("true", test_bool, b) && b.b);
- BOOST_TEST(test_attr("false", test_bool, b) && !b.b);
- BOOST_TEST(!test_attr("fasle", test_bool, b));
- }
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/qi/clear_test.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/clear_test.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,38 +0,0 @@
-// Copyright (c) 2010 Daniel James
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/qi.hpp>
-#include <vector>
-
-int main()
-{
- typedef char const* Iterator;
- namespace qi = boost::spirit::qi;
-
- qi::rule<Iterator, std::vector<boost::iterator_range<Iterator> >()> list;
- list = *qi::raw[qi::char_]; // This fails to compile
-
- char const* test = "abcdef";
- int test_length = 6;
- char const* test_begin = test;
- char const* test_end = test + test_length;
- std::vector<boost::iterator_range<Iterator> > result;
- bool r = qi::parse(test_begin, test_end, list, result);
-
- BOOST_TEST(r);
- BOOST_TEST(test_begin == test_end);
- BOOST_TEST(result.size() == test_length);
-
- for(int i = 0; i < test_length; ++i) {
- BOOST_TEST(result[i].begin() == test + i);
- BOOST_TEST(result[i].end() == test + i + 1);
- }
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/qi/debug_optional.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/debug_optional.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,24 +0,0 @@
-// Copyright (c) 2010 Carl Philipp Reh
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// make sure optionals play well with debug output
-
-#define BOOST_SPIRIT_DEBUG
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/home/support/attributes.hpp>
-#include <boost/optional.hpp>
-
-int main()
-{
- boost::spirit::qi::rule<
- char const *,
- boost::optional<int>()
- > foo;
-
- BOOST_SPIRIT_DEBUG_NODE(foo);
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/qi/int.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/int.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,235 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
- Copyright (c) 2001-2010 Hartmut Kaiser
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-#include <climits>
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/qi_numeric.hpp>
-#include <boost/spirit/include/qi_char.hpp>
-#include <boost/spirit/include/qi_action.hpp>
-#include <boost/spirit/include/support_argument.hpp>
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-
-#include "test.hpp"
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// *** BEWARE PLATFORM DEPENDENT!!! ***
-// *** The following assumes 32 bit or 64 bit integers and 64 bit long longs.
-// *** Modify these constant strings when appropriate.
-//
-///////////////////////////////////////////////////////////////////////////////
-#ifdef BOOST_HAS_LONG_LONG
-// Some compilers have long long, but don't define the
-// LONG_LONG_MIN and LONG_LONG_MAX macros in limits.h. This
-// assumes that long long is 64 bits.
-
-BOOST_STATIC_ASSERT(sizeof(boost::long_long_type) == 8);
-
-#if !defined(LONG_LONG_MIN) && !defined(LONG_LONG_MAX)
-# define LONG_LONG_MAX 0x7fffffffffffffffLL
-# define LONG_LONG_MIN (-LONG_LONG_MAX - 1)
-#endif
-
-#endif // BOOST_HAS_LONG_LONG
-
-#if INT_MAX != LLONG_MAX
- BOOST_STATIC_ASSERT(sizeof(int) == 4);
- char const* max_int = "2147483647";
- char const* int_overflow = "2147483648";
- char const* min_int = "-2147483648";
- char const* int_underflow = "-2147483649";
-#else
- BOOST_STATIC_ASSERT(sizeof(int) == 8);
- char const* max_int = "9223372036854775807";
- char const* int_overflow = "9223372036854775808";
- char const* min_int = "-9223372036854775808";
- char const* int_underflow = "-9223372036854775809";
-#endif
-
-#ifdef BOOST_HAS_LONG_LONG
- char const* max_long_long = "9223372036854775807";
- char const* long_long_overflow = "9223372036854775808";
- char const* min_long_long = "-9223372036854775808";
- char const* long_long_underflow = "-9223372036854775809";
-#endif
-
-///////////////////////////////////////////////////////////////////////////////
-// A custom int type
-struct custom_int
-{
- int n;
- custom_int() : n(0) {}
- explicit custom_int(int n_) : n(n_) {}
- custom_int& operator=(int n_) { n = n_; return *this; }
- friend custom_int operator*(custom_int a, custom_int b) { return custom_int(a.n * b.n); }
- friend custom_int operator+(custom_int a, custom_int b) { return custom_int(a.n + b.n); }
- friend custom_int operator-(custom_int a, custom_int b) { return custom_int(a.n - b.n); }
-};
-
-int
-main()
-{
- using spirit_test::test;
- using spirit_test::test_attr;
-
- ///////////////////////////////////////////////////////////////////////////
- // signed integer tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::int_;
- int i;
-
- BOOST_TEST(test("123456", int_));
- BOOST_TEST(test_attr("123456", int_, i));
- BOOST_TEST(i == 123456);
-
- BOOST_TEST(test("+123456", int_));
- BOOST_TEST(test_attr("+123456", int_, i));
- BOOST_TEST(i == 123456);
-
- BOOST_TEST(test("-123456", int_));
- BOOST_TEST(test_attr("-123456", int_, i));
- BOOST_TEST(i == -123456);
-
- BOOST_TEST(test(max_int, int_));
- BOOST_TEST(test_attr(max_int, int_, i));
- BOOST_TEST(i == INT_MAX);
-
- BOOST_TEST(test(min_int, int_));
- BOOST_TEST(test_attr(min_int, int_, i));
- BOOST_TEST(i == INT_MIN);
-
- BOOST_TEST(!test(int_overflow, int_));
- BOOST_TEST(!test_attr(int_overflow, int_, i));
- BOOST_TEST(!test(int_underflow, int_));
- BOOST_TEST(!test_attr(int_underflow, int_, i));
-
- BOOST_TEST(!test("-", int_));
- BOOST_TEST(!test_attr("-", int_, i));
-
- BOOST_TEST(!test("+", int_));
- BOOST_TEST(!test_attr("+", int_, i));
-
- // Bug report from Steve Nutt
- BOOST_TEST(!test_attr("5368709120", int_, i));
-
- // with leading zeros
- BOOST_TEST(test("0000000000123456", int_));
- BOOST_TEST(test_attr("0000000000123456", int_, i));
- BOOST_TEST(i == 123456);
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // long long tests
- ///////////////////////////////////////////////////////////////////////////
-#ifdef BOOST_HAS_LONG_LONG
- {
- using boost::spirit::long_long;
- boost::long_long_type ll;
-
- BOOST_TEST(test("1234567890123456789", long_long));
- BOOST_TEST(test_attr("1234567890123456789", long_long, ll));
- BOOST_TEST(ll == 1234567890123456789LL);
-
- BOOST_TEST(test("-1234567890123456789", long_long));
- BOOST_TEST(test_attr("-1234567890123456789", long_long, ll));
- BOOST_TEST(ll == -1234567890123456789LL);
-
- BOOST_TEST(test(max_long_long, long_long));
- BOOST_TEST(test_attr(max_long_long, long_long, ll));
- BOOST_TEST(ll == LONG_LONG_MAX);
-
- BOOST_TEST(test(min_long_long, long_long));
- BOOST_TEST(test_attr(min_long_long, long_long, ll));
- BOOST_TEST(ll == LONG_LONG_MIN);
-
- BOOST_TEST(!test(long_long_overflow, long_long));
- BOOST_TEST(!test_attr(long_long_overflow, long_long, ll));
- BOOST_TEST(!test(long_long_underflow, long_long));
- BOOST_TEST(!test_attr(long_long_underflow, long_long, ll));
- }
-#endif
-
- ///////////////////////////////////////////////////////////////////////////
- // short_ and long_ tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::short_;
- using boost::spirit::long_;
- int i;
-
- BOOST_TEST(test("12345", short_));
- BOOST_TEST(test_attr("12345", short_, i));
- BOOST_TEST(i == 12345);
-
- BOOST_TEST(test("1234567890", long_));
- BOOST_TEST(test_attr("1234567890", long_, i));
- BOOST_TEST(i == 1234567890);
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // Check overflow is parse error
- ///////////////////////////////////////////////////////////////////////////
- {
- boost::spirit::qi::int_parser<boost::int8_t> int8_;
- char c;
-
- BOOST_TEST(!test_attr("999", int8_, c));
-
- int i;
- using boost::spirit::short_;
- BOOST_TEST(!test_attr("32769", short_, i, false));
- BOOST_TEST(!test_attr("41234", short_, i, false));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // int_parser<unused_type> tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::int_parser;
- using boost::spirit::unused_type;
- int_parser<unused_type> any_int;
-
- BOOST_TEST(test("123456", any_int));
- BOOST_TEST(test("-123456", any_int));
- BOOST_TEST(test("-1234567890123456789", any_int));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // action tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::phoenix::ref;
- using boost::spirit::_1;
- using boost::spirit::ascii::space;
- using boost::spirit::int_;
- int n, m;
-
- BOOST_TEST(test("123", int_[ref(n) = _1]));
- BOOST_TEST(n == 123);
- BOOST_TEST(test_attr("789", int_[ref(n) = _1], m));
- BOOST_TEST(n == 789 && m == 789);
- BOOST_TEST(test(" 456", int_[ref(n) = _1], space));
- BOOST_TEST(n == 456);
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // custom int tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::int_;
- using boost::spirit::qi::int_parser;
- custom_int i;
-
- BOOST_TEST(test_attr("-123456", int_, i));
- int_parser<custom_int, 10, 1, 2> int2;
- BOOST_TEST(test_attr("-12", int2, i));
- }
-
- return boost::report_errors();
-}

Copied: branches/release/libs/spirit/test/qi/int.hpp (from r67508, /trunk/libs/spirit/test/qi/int.hpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/int.hpp (original)
+++ branches/release/libs/spirit/test/qi/int.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -71,6 +71,7 @@
     explicit custom_int(int n_) : n(n_) {}
     custom_int& operator=(int n_) { n = n_; return *this; }
     friend bool operator==(custom_int a, custom_int b) { return a.n == b.n; }
+ friend bool operator==(custom_int a, int b) { return a.n == b; }
     friend custom_int operator*(custom_int a, custom_int b) { return custom_int(a.n * b.n); }
     friend custom_int operator+(custom_int a, custom_int b) { return custom_int(a.n + b.n); }
     friend custom_int operator-(custom_int a, custom_int b) { return custom_int(a.n - b.n); }

Copied: branches/release/libs/spirit/test/qi/int2.cpp (from r67508, /trunk/libs/spirit/test/qi/int2.cpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/int2.cpp (original)
+++ branches/release/libs/spirit/test/qi/int2.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -19,33 +19,40 @@
     // signed integer literal tests
     ///////////////////////////////////////////////////////////////////////////
     {
- using boost::spirit::int_;
-
+ using boost::spirit::lit;
         int i = 123456;
 
- BOOST_TEST( test("123456", int_(123456)));
- BOOST_TEST(!test("123456", int_(0)));
+ BOOST_TEST( test("123456", lit(123456)));
+ BOOST_TEST(!test("123456", lit(0)));
+ BOOST_TEST( test("123456", 123456));
+ BOOST_TEST(!test("123456", 0));
         
- BOOST_TEST( test("123456", int_(i)));
- BOOST_TEST(!test("123456", int_(-i)));
-
- BOOST_TEST( test("+425", int_(425)));
- BOOST_TEST(!test("+425", int_(17)));
-
- BOOST_TEST( test("-2000", int_(-2000)));
- BOOST_TEST(!test("-2000", int_(2000)));
+ BOOST_TEST( test("123456", lit(i)));
+ BOOST_TEST(!test("123456", lit(-i)));
+ BOOST_TEST( test("123456", i));
+ BOOST_TEST(!test("123456", -i));
+
+ BOOST_TEST( test("+425", lit(425)));
+ BOOST_TEST(!test("+425", lit(17)));
+ BOOST_TEST( test("+425", 425));
+ BOOST_TEST(!test("+425", 17));
+
+ BOOST_TEST( test("-2000", lit(-2000)));
+ BOOST_TEST(!test("-2000", lit(2000)));
+ BOOST_TEST( test("-2000", -2000));
+ BOOST_TEST(!test("-2000", 2000));
 
- BOOST_TEST( test(max_int, int_(INT_MAX)));
- BOOST_TEST(!test(max_int, int_(INT_MIN)));
+ BOOST_TEST( test(max_int, lit(INT_MAX)));
+ BOOST_TEST(!test(max_int, lit(INT_MIN)));
 
- BOOST_TEST( test(min_int, int_(INT_MIN)));
- BOOST_TEST(!test(min_int, int_(INT_MAX)));
+ BOOST_TEST( test(min_int, lit(INT_MIN)));
+ BOOST_TEST(!test(min_int, lit(INT_MAX)));
 
- BOOST_TEST(!test("-", int_(8451)));
- BOOST_TEST(!test("+", int_(8451)));
+ BOOST_TEST(!test("-", lit(8451)));
+ BOOST_TEST(!test("+", lit(8451)));
 
         // with leading zeros
- BOOST_TEST(test("000000000098765", int_(98765)));
+ BOOST_TEST(test("000000000098765", lit(98765)));
     }
 
     ///////////////////////////////////////////////////////////////////////////
@@ -53,23 +60,29 @@
     ///////////////////////////////////////////////////////////////////////////
 #ifdef BOOST_HAS_LONG_LONG
     {
- using boost::spirit::long_long;
+ using boost::spirit::lit;
         boost::long_long_type ll = 1234567890123456789LL;
 
- BOOST_TEST( test("1234567890123456789", long_long(1234567890123456789LL)));
- BOOST_TEST(!test("1234567890123456789", long_long(-19LL)));
+ BOOST_TEST( test("1234567890123456789", lit(1234567890123456789LL)));
+ BOOST_TEST(!test("1234567890123456789", lit(-19LL)));
+ BOOST_TEST( test("1234567890123456789", 1234567890123456789LL));
+ BOOST_TEST(!test("1234567890123456789", -19LL));
         
- BOOST_TEST( test("1234567890123456789", long_long(ll)));
- BOOST_TEST(!test("1234567890123456789", long_long(-ll)));
+ BOOST_TEST( test("1234567890123456789", lit(ll)));
+ BOOST_TEST(!test("1234567890123456789", lit(-ll)));
+ BOOST_TEST( test("1234567890123456789", ll));
+ BOOST_TEST(!test("1234567890123456789", -ll));
+
+ BOOST_TEST( test("-100000000000000", lit(-100000000000000LL)));
+ BOOST_TEST(!test("-100000000000000", lit(3243515525263LL)));
+ BOOST_TEST( test("-100000000000000", -100000000000000LL));
+ BOOST_TEST(!test("-100000000000000", 3243515525263LL));
 
- BOOST_TEST( test("-100000000000000", long_long(-100000000000000LL)));
- BOOST_TEST(!test("-100000000000000", long_long(3243515525263LL)));
+ BOOST_TEST( test(max_long_long, lit(LONG_LONG_MAX)));
+ BOOST_TEST(!test(max_long_long, lit(LONG_LONG_MIN)));
 
- BOOST_TEST( test(max_long_long, long_long(LONG_LONG_MAX)));
- BOOST_TEST(!test(max_long_long, long_long(LONG_LONG_MIN)));
-
- BOOST_TEST( test(min_long_long, long_long(LONG_LONG_MIN)));
- BOOST_TEST(!test(min_long_long, long_long(LONG_LONG_MAX)));
+ BOOST_TEST( test(min_long_long, lit(LONG_LONG_MIN)));
+ BOOST_TEST(!test(min_long_long, lit(LONG_LONG_MAX)));
     }
 #endif
 
@@ -77,30 +90,57 @@
     // short_ and long_ literal tests
     ///////////////////////////////////////////////////////////////////////////
     {
- using boost::spirit::short_;
- using boost::spirit::long_;
+ using boost::spirit::lit;
         short s = 12345;
         long l = 1234567890L;
 
- BOOST_TEST( test("12345", short_(12345)));
- BOOST_TEST(!test("12345", short_(-12345)));
- BOOST_TEST( test("12345", short_(s)));
- BOOST_TEST(!test("12345", short_(-s)));
-
- BOOST_TEST( test("-12345", short_(-12345)));
- BOOST_TEST(!test("-12345", short_(12345)));
- BOOST_TEST( test("-12345", short_(-s)));
- BOOST_TEST(!test("-12345", short_(s)));
-
- BOOST_TEST( test("1234567890", long_(1234567890)));
- BOOST_TEST(!test("1234567890", long_(-1234567890)));
- BOOST_TEST( test("1234567890", long_(l)));
- BOOST_TEST(!test("1234567890", long_(-l)));
-
- BOOST_TEST( test("-1234567890", long_(-1234567890)));
- BOOST_TEST(!test("-1234567890", long_(1234567890)));
- BOOST_TEST( test("-1234567890", long_(-l)));
- BOOST_TEST(!test("-1234567890", long_(l)));
+ BOOST_TEST( test("12345", lit(12345)));
+ BOOST_TEST(!test("12345", lit(-12345)));
+ BOOST_TEST( test("12345", lit(s)));
+ BOOST_TEST(!test("12345", lit(-s)));
+ BOOST_TEST( test("12345", 12345));
+ BOOST_TEST(!test("12345", -12345));
+ BOOST_TEST( test("12345", s));
+ BOOST_TEST(!test("12345", -s));
+
+ BOOST_TEST( test("-12345", lit(-12345)));
+ BOOST_TEST(!test("-12345", lit(12345)));
+ BOOST_TEST( test("-12345", lit(-s)));
+ BOOST_TEST(!test("-12345", lit(s)));
+ BOOST_TEST( test("-12345", -12345));
+ BOOST_TEST(!test("-12345", 12345));
+ BOOST_TEST( test("-12345", -s));
+ BOOST_TEST(!test("-12345", s));
+
+ BOOST_TEST( test("1234567890", lit(1234567890)));
+ BOOST_TEST(!test("1234567890", lit(-1234567890)));
+ BOOST_TEST( test("1234567890", lit(l)));
+ BOOST_TEST(!test("1234567890", lit(-l)));
+ BOOST_TEST( test("1234567890", 1234567890));
+ BOOST_TEST(!test("1234567890", -1234567890));
+ BOOST_TEST( test("1234567890", l));
+ BOOST_TEST(!test("1234567890", -l));
+
+ BOOST_TEST( test("-1234567890", lit(-1234567890)));
+ BOOST_TEST(!test("-1234567890", lit(1234567890)));
+ BOOST_TEST( test("-1234567890", lit(-l)));
+ BOOST_TEST(!test("-1234567890", lit(l)));
+ BOOST_TEST( test("-1234567890", -1234567890));
+ BOOST_TEST(!test("-1234567890", 1234567890));
+ BOOST_TEST( test("-1234567890", -l));
+ BOOST_TEST(!test("-1234567890", l));
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // literal lazy tests
+ ///////////////////////////////////////////////////////////////////////////
+ {
+ using boost::phoenix::ref;
+ using boost::spirit::qi::lit;
+ int n = 123, m = 321;
+
+ BOOST_TEST(test("123", lit(ref(n))));
+ BOOST_TEST(!test("123", lit(ref(m))));
     }
 
     return boost::report_errors();

Deleted: branches/release/libs/spirit/test/qi/match_manip.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/match_manip.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,328 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2010 Hartmut Kaiser
- Copyright (c) 2001-2010 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-#include <boost/config/warning_disable.hpp>
-
-#include <boost/spirit/include/support_argument.hpp>
-#include <boost/spirit/include/qi_action.hpp>
-#include <boost/spirit/include/qi_numeric.hpp>
-#include <boost/spirit/include/qi_operator.hpp>
-#include <boost/spirit/include/qi_char.hpp>
-#include <boost/spirit/include/qi_operator.hpp>
-#include <boost/spirit/include/qi_stream.hpp>
-#include <boost/spirit/include/qi_match.hpp>
-#include <boost/spirit/include/qi_match_auto.hpp>
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_statement.hpp>
-
-#include <string>
-#include <sstream>
-#include <vector>
-#include <list>
-
-#include <boost/detail/lightweight_test.hpp>
-
-///////////////////////////////////////////////////////////////////////////////
-template <typename Char, typename Expr>
-bool test(Char const *toparse, Expr const& expr)
-{
- namespace spirit = boost::spirit;
- BOOST_SPIRIT_ASSERT_MATCH(spirit::qi::domain, Expr);
-
- std::istringstream istrm(toparse);
- istrm.unsetf(std::ios::skipws);
- istrm >> spirit::qi::compile<spirit::qi::domain>(expr);
- return istrm.good() || istrm.eof();
-}
-
-template <typename Char, typename Expr, typename CopyExpr, typename CopyAttr
- , typename Skipper, typename Attribute>
-bool test(Char const *toparse,
- boost::spirit::qi::detail::match_manip<
- Expr, CopyExpr, CopyAttr, Skipper, Attribute> const& mm)
-{
- std::istringstream istrm(toparse);
- istrm.unsetf(std::ios::skipws);
- istrm >> mm;
- return istrm.good() || istrm.eof();
-}
-
-///////////////////////////////////////////////////////////////////////////////
-bool is_list_ok(std::list<char> const& l)
-{
- std::list<char>::const_iterator cit = l.begin();
- if (cit == l.end() || *cit != 'a')
- return false;
- if (++cit == l.end() || *cit != 'b')
- return false;
-
- return ++cit != l.end() && *cit == 'c';
-}
-
-///////////////////////////////////////////////////////////////////////////////
-int
-main()
-{
- using boost::spirit::qi::_1;
- using boost::spirit::qi::_2;
- using boost::spirit::qi::match;
- using boost::spirit::qi::phrase_match;
- using boost::spirit::qi::typed_stream;
- using boost::spirit::qi::stream;
- using boost::spirit::qi::int_;
-
- using namespace boost::spirit::ascii;
- namespace fusion = boost::fusion;
- namespace phx = boost::phoenix;
-
- {
- char c = '\0';
- BOOST_TEST(test( "a",
- char_[phx::ref(c) = _1]
- ) && c == 'a');
-
- c = '\0';
- BOOST_TEST(test( "a",
- match(char_[phx::ref(c) = _1])
- ) && c == 'a');
-
- c = '\0';
- BOOST_TEST(test( " a",
- phrase_match(char_[phx::ref(c) = _1], space)
- ) && c == 'a');
-
- c = '\0';
- BOOST_TEST(test( "a",
- match(char_, c)
- ) && c == 'a');
-
- c = '\0';
- BOOST_TEST(test( " a",
- phrase_match(char_, space, c)
- ) && c == 'a');
- }
-
- {
- ///////////////////////////////////////////////////////////////////////
- typedef typed_stream<char> char_stream_type;
- char_stream_type const char_stream = char_stream_type();
-
- typedef typed_stream<int> int_stream_type;
- int_stream_type const int_stream = int_stream_type();
-
- ///////////////////////////////////////////////////////////////////////
- char c = '\0';
- BOOST_TEST(test( "a",
- char_stream[phx::ref(c) = _1]
- ) && c == 'a');
-
- c = '\0';
- BOOST_TEST(test( "a",
- match(char_stream[phx::ref(c) = _1])
- ) && c == 'a');
-
- c = '\0';
- BOOST_TEST(test( " a",
- phrase_match(char_stream[phx::ref(c) = _1], space)
- ) && c == 'a');
-
- int i = 0;
- BOOST_TEST(test( "42",
- int_stream[phx::ref(i) = _1]
- ) && i == 42);
-
- i = 0;
- BOOST_TEST(test( "42",
- match(int_stream[phx::ref(i) = _1])
- ) && i == 42);
-
- i = 0;
- BOOST_TEST(test( " 42",
- phrase_match(int_stream[phx::ref(i) = _1], space)
- ) && i == 42);
-
- ///////////////////////////////////////////////////////////////////////
- c = '\0';
- BOOST_TEST(test( "a",
- match(stream, c)
- ) && c == 'a');
-
- c = '\0';
- BOOST_TEST(test( " a",
- phrase_match(stream, space, c)
- ) && c == 'a');
-
- i = 0;
- BOOST_TEST(test( "42",
- match(stream, i)
- ) && i == 42);
-
- i = 0;
- BOOST_TEST(test( " 42",
- phrase_match(stream, space, i)
- ) && i == 42);
- }
-
- {
- char a = '\0', b = '\0';
- BOOST_TEST(test( "ab",
- char_[phx::ref(a) = _1] >> char_[phx::ref(b) = _1]
- ) && a == 'a' && b == 'b');
-
- a = '\0', b = '\0';
- BOOST_TEST(test( "ab",
- match(char_[phx::ref(a) = _1] >> char_[phx::ref(b) = _1])
- ) && a == 'a' && b == 'b');
-
- a = '\0', b = '\0';
- BOOST_TEST(test( " a b",
- phrase_match(char_[phx::ref(a) = _1] >> char_[phx::ref(b) = _1], space)
- ) && a == 'a' && b == 'b');
-
- fusion::vector<char, char> t;
- BOOST_TEST(test( "ab",
- match(char_ >> char_, t)
- ) && fusion::at_c<0>(t) == 'a' && fusion::at_c<1>(t) == 'b');
-
- t = fusion::vector<char, char>();
- BOOST_TEST(test( " a b",
- phrase_match(char_ >> char_, space, t)
- ) && fusion::at_c<0>(t) == 'a' && fusion::at_c<1>(t) == 'b');
- }
-
- {
- char a = '\0', b = '\0', c = '\0';
- BOOST_TEST(test( "abc",
- char_[phx::ref(a) = _1] >> char_[phx::ref(b) = _1] >> char_[phx::ref(c) = _1]
- ) && a == 'a' && b == 'b' && c == 'c');
-
- BOOST_TEST(test( "abc",
- match(char_('a') >> char_('b') >> char_('c'))
- ));
-
- BOOST_TEST(test( " a b c",
- phrase_match(char_('a') >> char_('b') >> char_('c'), space)
- ));
-
- BOOST_TEST(!test( "abc",
- match(char_('a') >> char_('b') >> char_('d'))
- ));
-
- BOOST_TEST(!test( " a b c",
- phrase_match(char_('a') >> char_('b') >> char_('d'), space)
- ));
-
- fusion::vector<char, char, char> t;
- BOOST_TEST(test( "abc",
- match(char_ >> char_ >> char_, t)
- ) && fusion::at_c<0>(t) == 'a' && fusion::at_c<1>(t) == 'b' && fusion::at_c<2>(t) == 'c');
-
- t = fusion::vector<char, char, char>();
- BOOST_TEST(test( " a b c",
- phrase_match(char_ >> char_ >> char_, space, t)
- ) && fusion::at_c<0>(t) == 'a' && fusion::at_c<1>(t) == 'b' && fusion::at_c<2>(t) == 'c');
-
- t = fusion::vector<char, char, char>();
- BOOST_TEST(test( "abc",
- match(t)
- ) && fusion::at_c<0>(t) == 'a' && fusion::at_c<1>(t) == 'b' && fusion::at_c<2>(t) == 'c');
-
- t = fusion::vector<char, char, char>();
- BOOST_TEST(test( " a b c",
- phrase_match(t, space)
- ) && fusion::at_c<0>(t) == 'a' && fusion::at_c<1>(t) == 'b' && fusion::at_c<2>(t) == 'c');
- }
-
- {
- char a = '\0';
- int i = 0;
- BOOST_TEST(test( "a2",
- (char_ >> int_)[phx::ref(a) = _1, phx::ref(i) = _2]
- ) && a == 'a' && i == 2);
-
- fusion::vector<char, int> t;
- BOOST_TEST(test( "a2",
- match(char_ >> int_, t)
- ) && fusion::at_c<0>(t) == 'a' && fusion::at_c<1>(t) == 2);
-
- t = fusion::vector<char, int>();
- BOOST_TEST(test( " a 2",
- phrase_match(char_ >> int_, space, t)
- ) && fusion::at_c<0>(t) == 'a' && fusion::at_c<1>(t) == 2);
-
- BOOST_TEST(!test( "a2",
- match(char_ >> alpha, t)
- ));
- BOOST_TEST(!test( " a 2",
- phrase_match(char_ >> alpha, space, t)
- ));
- }
-
- {
- // parse elements of a vector
- std::vector<char> v;
- BOOST_TEST(test( "abc",
- (*char_)[phx::ref(v) = _1]
- ) && 3 == v.size() && v[0] == 'a' && v[1] == 'b' && v[2] == 'c');
-
- v.clear();
- BOOST_TEST(test( "abc",
- match(*char_, v)
- ) && 3 == v.size() && v[0] == 'a' && v[1] == 'b' && v[2] == 'c');
-
- v.clear();
- BOOST_TEST(test( " a b c",
- phrase_match(*char_, space, v)
- ) && 3 == v.size() && v[0] == 'a' && v[1] == 'b' && v[2] == 'c');
-
- v.clear();
- BOOST_TEST(test( "abc",
- match(v)
- ) && 3 == v.size() && v[0] == 'a' && v[1] == 'b' && v[2] == 'c');
-
- v.clear();
- BOOST_TEST(test( " a b c",
- phrase_match(v, space)
- ) && 3 == v.size() && v[0] == 'a' && v[1] == 'b' && v[2] == 'c');
-
- // parse a comma separated list of vector elements
- v.clear();
- BOOST_TEST(test( "a,b,c",
- match(char_ % ',', v)
- ) && 3 == v.size() && v[0] == 'a' && v[1] == 'b' && v[2] == 'c');
-
- v.clear();
- BOOST_TEST(test( " a , b , c",
- phrase_match(char_ % ',', space, v)
- ) && 3 == v.size() && v[0] == 'a' && v[1] == 'b' && v[2] == 'c');
-
- // output all elements of a list
- std::list<char> l;
- BOOST_TEST(test( "abc",
- match(*char_, l)
- ) && 3 == l.size() && is_list_ok(l));
-
- l.clear();
- BOOST_TEST(test( " a b c",
- phrase_match(*char_, space, l)
- ) && 3 == l.size() && is_list_ok(l));
-
- l.clear();
- BOOST_TEST(test( "abc",
- match(l)
- ) && 3 == l.size() && is_list_ok(l));
-
- l.clear();
- BOOST_TEST(test( " a b c",
- phrase_match(l, space)
- ) && 3 == l.size() && is_list_ok(l));
- }
-
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/qi/one_element_fusion_sequence.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/one_element_fusion_sequence.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,27 +0,0 @@
-// Copyright (c) 2001-2011 Hartmut Kaiser
-// Copyright (c) 2010 Daniel James
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// This compilation test fails if proto expressions are not properly
-// distinguished from 'normal' Fusion sequences.
-
-#include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/include/phoenix.hpp>
-#include <string>
-
-int main()
-{
- namespace qi = boost::spirit::qi;
- typedef std::string::const_iterator iterator;
-
- qi::symbols<char, qi::rule<iterator> > phrase_keyword_rules;
- qi::rule<iterator, qi::locals<qi::rule<iterator> > > phrase_markup_impl;
-
- phrase_markup_impl
- = (phrase_keyword_rules >> !qi::alnum) [qi::_a = qi::_1]
- ;
-
- return 0;
-}

Deleted: branches/release/libs/spirit/test/qi/real.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/real.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,417 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
- Copyright (c) 2001-2010 Hartmut Kaiser
-
- Use, modification and distribution is subject to the Boost Software
- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-#include <climits>
-#include <boost/math/concepts/real_concept.hpp>
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/qi_char.hpp>
-#include <boost/spirit/include/qi_numeric.hpp>
-#include <boost/spirit/include/qi_operator.hpp>
-#include <boost/math/special_functions/fpclassify.hpp>
-#include <boost/math/special_functions/sign.hpp>
-
-#include "test.hpp"
-
-///////////////////////////////////////////////////////////////////////////////
-// These policies can be used to parse thousand separated
-// numbers with at most 2 decimal digits after the decimal
-// point. e.g. 123,456,789.01
-///////////////////////////////////////////////////////////////////////////////
-template <typename T>
-struct ts_real_policies : boost::spirit::qi::ureal_policies<T>
-{
- // 2 decimal places Max
- template <typename Iterator, typename Attribute>
- static bool
- parse_frac_n(Iterator& first, Iterator const& last, Attribute& attr)
- {
- namespace qi = boost::spirit::qi;
- return qi::extract_uint<T, 10, 1, 2, true>::call(first, last, attr);
- }
-
- // No exponent
- template <typename Iterator>
- static bool
- parse_exp(Iterator&, Iterator const&)
- {
- return false;
- }
-
- // No exponent
- template <typename Iterator, typename Attribute>
- static bool
- parse_exp_n(Iterator&, Iterator const&, Attribute&)
- {
- return false;
- }
-
- // Thousands separated numbers
- template <typename Iterator, typename Attribute>
- static bool
- parse_n(Iterator& first, Iterator const& last, Attribute& attr)
- {
- using boost::spirit::qi::uint_parser;
- namespace qi = boost::spirit::qi;
-
- uint_parser<unsigned, 10, 1, 3> uint3;
- uint_parser<unsigned, 10, 3, 3> uint3_3;
-
- T result = 0;
- if (parse(first, last, uint3, result))
- {
- bool hit = false;
- T n;
- Iterator save = first;
-
- while (qi::parse(first, last, ',') && qi::parse(first, last, uint3_3, n))
- {
- result = result * 1000 + n;
- save = first;
- hit = true;
- }
-
- first = save;
- if (hit)
- attr = result;
- return hit;
- }
- return false;
- }
-};
-
-template <typename T>
-struct no_trailing_dot_policy : boost::spirit::qi::real_policies<T>
-{
- static bool const allow_trailing_dot = false;
-};
-
-template <typename T>
-struct no_leading_dot_policy : boost::spirit::qi::real_policies<T>
-{
- static bool const allow_leading_dot = false;
-};
-
-template <typename T>
-bool
-compare(T n, double expected)
-{
- T const eps = std::pow(10.0, -std::numeric_limits<T>::digits10);
- T delta = n - expected;
- return (delta >= -eps) && (delta <= eps);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// A custom real type
-struct custom_real
-{
- double n;
- custom_real() : n(0) {}
- custom_real(double n_) : n(n_) {}
- friend custom_real operator*(custom_real a, custom_real b)
- { return custom_real(a.n * b.n); }
- friend custom_real operator+(custom_real a, custom_real b)
- { return custom_real(a.n + b.n); }
- friend custom_real operator-(custom_real a, custom_real b)
- { return custom_real(a.n - b.n); }
-};
-
-int
-main()
-{
- using spirit_test::test;
- using spirit_test::test_attr;
-
- ///////////////////////////////////////////////////////////////////////////////
- // thousand separated numbers
- ///////////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::uint_parser;
- using boost::spirit::qi::parse;
-
- uint_parser<unsigned, 10, 1, 3> uint3;
- uint_parser<unsigned, 10, 3, 3> uint3_3;
-
- #define r (uint3 >> *(',' >> uint3_3))
-
- BOOST_TEST(test("1,234,567,890", r));
- BOOST_TEST(test("12,345,678,900", r));
- BOOST_TEST(test("123,456,789,000", r));
- BOOST_TEST(!test("1000,234,567,890", r));
- BOOST_TEST(!test("1,234,56,890", r));
- BOOST_TEST(!test("1,66", r));
- }
-
- ///////////////////////////////////////////////////////////////////////////////
- // unsigned real number tests
- ///////////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::real_parser;
- using boost::spirit::qi::parse;
- using boost::spirit::qi::ureal_policies;
-
- real_parser<double, ureal_policies<double> > udouble;
- double d;
-
- BOOST_TEST(test("1234", udouble));
- BOOST_TEST(test_attr("1234", udouble, d) && compare(d, 1234));
-
- BOOST_TEST(test("1.2e3", udouble));
- BOOST_TEST(test_attr("1.2e3", udouble, d) && compare(d, 1.2e3));
-
- BOOST_TEST(test("1.2e-3", udouble));
- BOOST_TEST(test_attr("1.2e-3", udouble, d) && compare(d, 1.2e-3));
-
- BOOST_TEST(test("1.e2", udouble));
- BOOST_TEST(test_attr("1.e2", udouble, d) && compare(d, 1.e2));
-
- BOOST_TEST(test("1.", udouble));
- BOOST_TEST(test_attr("1.", udouble, d) && compare(d, 1.));
-
- BOOST_TEST(test(".2e3", udouble));
- BOOST_TEST(test_attr(".2e3", udouble, d) && compare(d, .2e3));
-
- BOOST_TEST(test("2e3", udouble));
- BOOST_TEST(test_attr("2e3", udouble, d) && compare(d, 2e3));
-
- BOOST_TEST(test("2", udouble));
- BOOST_TEST(test_attr("2", udouble, d) && compare(d, 2));
-
- using boost::math::fpclassify;
- BOOST_TEST(test("inf", udouble));
- BOOST_TEST(test("infinity", udouble));
- BOOST_TEST(test("INF", udouble));
- BOOST_TEST(test("INFINITY", udouble));
- BOOST_TEST(test_attr("inf", udouble, d) && FP_INFINITE == fpclassify(d));
- BOOST_TEST(test_attr("INF", udouble, d) && FP_INFINITE == fpclassify(d));
- BOOST_TEST(test_attr("infinity", udouble, d) && FP_INFINITE == fpclassify(d));
- BOOST_TEST(test_attr("INFINITY", udouble, d) && FP_INFINITE == fpclassify(d));
-
- BOOST_TEST(test("nan", udouble));
- BOOST_TEST(test_attr("nan", udouble, d) && FP_NAN == fpclassify(d));
- BOOST_TEST(test("NAN", udouble));
- BOOST_TEST(test_attr("NAN", udouble, d) && FP_NAN == fpclassify(d));
-
- BOOST_TEST(test("nan(...)", udouble));
- BOOST_TEST(test_attr("nan(...)", udouble, d) && FP_NAN == fpclassify(d));
- BOOST_TEST(test("NAN(...)", udouble));
- BOOST_TEST(test_attr("NAN(...)", udouble, d) && FP_NAN == fpclassify(d));
-
- BOOST_TEST(!test("e3", udouble));
- BOOST_TEST(!test_attr("e3", udouble, d));
-
- BOOST_TEST(!test("-1.2e3", udouble));
- BOOST_TEST(!test_attr("-1.2e3", udouble, d));
-
- BOOST_TEST(!test("+1.2e3", udouble));
- BOOST_TEST(!test_attr("+1.2e3", udouble, d));
-
- BOOST_TEST(!test("1.2e", udouble));
- BOOST_TEST(!test_attr("1.2e", udouble, d));
-
- BOOST_TEST(!test("-.3", udouble));
- BOOST_TEST(!test_attr("-.3", udouble, d));
- }
-
-///////////////////////////////////////////////////////////////////////////////
-// signed real number tests
-///////////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::double_;
- using boost::spirit::qi::parse;
- double d;
-
- BOOST_TEST(test("-1234", double_));
- BOOST_TEST(test_attr("-1234", double_, d) && compare(d, -1234));
-
- BOOST_TEST(test("-1.2e3", double_));
- BOOST_TEST(test_attr("-1.2e3", double_, d) && compare(d, -1.2e3));
-
- BOOST_TEST(test("+1.2e3", double_));
- BOOST_TEST(test_attr("+1.2e3", double_, d) && compare(d, 1.2e3));
-
- BOOST_TEST(test("-0.1", double_));
- BOOST_TEST(test_attr("-0.1", double_, d) && compare(d, -0.1));
-
- BOOST_TEST(test("-1.2e-3", double_));
- BOOST_TEST(test_attr("-1.2e-3", double_, d) && compare(d, -1.2e-3));
-
- BOOST_TEST(test("-1.e2", double_));
- BOOST_TEST(test_attr("-1.e2", double_, d) && compare(d, -1.e2));
-
- BOOST_TEST(test("-.2e3", double_));
- BOOST_TEST(test_attr("-.2e3", double_, d) && compare(d, -.2e3));
-
- BOOST_TEST(test("-2e3", double_));
- BOOST_TEST(test_attr("-2e3", double_, d) && compare(d, -2e3));
-
- BOOST_TEST(!test("-e3", double_));
- BOOST_TEST(!test_attr("-e3", double_, d));
-
- BOOST_TEST(!test("-1.2e", double_));
- BOOST_TEST(!test_attr("-1.2e", double_, d));
-
-// this appears to be broken on Apple Tiger x86 with gcc4.0.1
-#if defined(BOOST_SPIRIT_TEST_REAL_PRECISION)
- BOOST_TEST(test_attr("-5.7222349715140557e+307", double_, d));
- BOOST_TEST(d == -5.7222349715140557e+307); // exact!
-
- BOOST_TEST(test_attr("2.0332938517515416e-308", double_, d));
- BOOST_TEST(d == 2.0332938517515416e-308); // exact!
-
- BOOST_TEST(test_attr("20332938517515416e291", double_, d));
- BOOST_TEST(d == 20332938517515416e291); // exact!
-
- BOOST_TEST(test_attr("2.0332938517515416e307", double_, d));
- BOOST_TEST(d == 2.0332938517515416e307); // exact!
-#endif
-
- using boost::math::fpclassify;
- using boost::spirit::detail::signbit; // Boost version is broken
-
- BOOST_TEST(test("-inf", double_));
- BOOST_TEST(test("-infinity", double_));
- BOOST_TEST(test_attr("-inf", double_, d) &&
- FP_INFINITE == fpclassify(d) && signbit(d));
- BOOST_TEST(test_attr("-infinity", double_, d) &&
- FP_INFINITE == fpclassify(d) && signbit(d));
- BOOST_TEST(test("-INF", double_));
- BOOST_TEST(test("-INFINITY", double_));
- BOOST_TEST(test_attr("-INF", double_, d) &&
- FP_INFINITE == fpclassify(d) && signbit(d));
- BOOST_TEST(test_attr("-INFINITY", double_, d) &&
- FP_INFINITE == fpclassify(d) && signbit(d));
-
- BOOST_TEST(test("-nan", double_));
- BOOST_TEST(test_attr("-nan", double_, d) &&
- FP_NAN == fpclassify(d) && signbit(d));
- BOOST_TEST(test("-NAN", double_));
- BOOST_TEST(test_attr("-NAN", double_, d) &&
- FP_NAN == fpclassify(d) && signbit(d));
-
- BOOST_TEST(test("-nan(...)", double_));
- BOOST_TEST(test_attr("-nan(...)", double_, d) &&
- FP_NAN == fpclassify(d) && signbit(d));
- BOOST_TEST(test("-NAN(...)", double_));
- BOOST_TEST(test_attr("-NAN(...)", double_, d) &&
- FP_NAN == fpclassify(d) && signbit(d));
- }
-
- ///////////////////////////////////////////////////////////////////////////////
- // strict real number tests
- ///////////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::real_parser;
- using boost::spirit::qi::parse;
- using boost::spirit::qi::strict_ureal_policies;
- using boost::spirit::qi::strict_real_policies;
-
- real_parser<double, strict_ureal_policies<double> > strict_udouble;
- real_parser<double, strict_real_policies<double> > strict_double;
- double d;
-
- BOOST_TEST(!test("1234", strict_udouble));
- BOOST_TEST(!test_attr("1234", strict_udouble, d));
-
- BOOST_TEST(test("1.2", strict_udouble));
- BOOST_TEST(test_attr("1.2", strict_udouble, d) && compare(d, 1.2));
-
- BOOST_TEST(!test("-1234", strict_double));
- BOOST_TEST(!test_attr("-1234", strict_double, d));
-
- BOOST_TEST(test("123.", strict_double));
- BOOST_TEST(test_attr("123.", strict_double, d) && compare(d, 123));
-
- BOOST_TEST(test("3.E6", strict_double));
- BOOST_TEST(test_attr("3.E6", strict_double, d) && compare(d, 3e6));
-
- real_parser<double, no_trailing_dot_policy<double> > notrdot_real;
- real_parser<double, no_leading_dot_policy<double> > nolddot_real;
-
- BOOST_TEST(!test("1234.", notrdot_real)); // Bad trailing dot
- BOOST_TEST(!test(".1234", nolddot_real)); // Bad leading dot
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // Special thousands separated numbers
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::real_parser;
- using boost::spirit::qi::parse;
- real_parser<double, ts_real_policies<double> > ts_real;
- double d;
-
- BOOST_TEST(test("123,456,789.01", ts_real));
- BOOST_TEST(test_attr("123,456,789.01", ts_real, d) && compare(d, 123456789.01));
-
- BOOST_TEST(test("12,345,678.90", ts_real));
- BOOST_TEST(test_attr("12,345,678.90", ts_real, d) && compare(d, 12345678.90));
-
- BOOST_TEST(test("1,234,567.89", ts_real));
- BOOST_TEST(test_attr("1,234,567.89", ts_real, d) && compare(d, 1234567.89));
-
- BOOST_TEST(!test("1234,567,890", ts_real));
- BOOST_TEST(!test("1,234,5678,9", ts_real));
- BOOST_TEST(!test("1,234,567.89e6", ts_real));
- BOOST_TEST(!test("1,66", ts_real));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // Custom data type
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::math::concepts::real_concept;
- using boost::spirit::qi::real_parser;
- using boost::spirit::qi::real_policies;
- using boost::spirit::qi::parse;
-
- real_parser<real_concept, real_policies<real_concept> > custom_real;
- real_concept d;
-
- BOOST_TEST(test("-1234", custom_real));
- BOOST_TEST(test_attr("-1234", custom_real, d) && compare(d, -1234));
-
- BOOST_TEST(test("-1.2e3", custom_real));
- BOOST_TEST(test_attr("-1.2e3", custom_real, d) && compare(d, -1.2e3));
-
- BOOST_TEST(test("+1.2e3", custom_real));
- BOOST_TEST(test_attr("+1.2e3", custom_real, d) && compare(d, 1.2e3));
-
- BOOST_TEST(test("-0.1", custom_real));
- BOOST_TEST(test_attr("-0.1", custom_real, d) && compare(d, -0.1));
-
- BOOST_TEST(test("-1.2e-3", custom_real));
- BOOST_TEST(test_attr("-1.2e-3", custom_real, d) && compare(d, -1.2e-3));
-
- BOOST_TEST(test("-1.e2", custom_real));
- BOOST_TEST(test_attr("-1.e2", custom_real, d) && compare(d, -1.e2));
-
- BOOST_TEST(test("-.2e3", custom_real));
- BOOST_TEST(test_attr("-.2e3", custom_real, d) && compare(d, -.2e3));
-
- BOOST_TEST(test("-2e3", custom_real));
- BOOST_TEST(test_attr("-2e3", custom_real, d) && compare(d, -2e3));
-
- BOOST_TEST(!test("-e3", custom_real));
- BOOST_TEST(!test_attr("-e3", custom_real, d));
-
- BOOST_TEST(!test("-1.2e", custom_real));
- BOOST_TEST(!test_attr("-1.2e", custom_real, d));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // custom real tests
- ///////////////////////////////////////////////////////////////////////////
- //~ {
- //~ using boost::spirit::qi::double_;
- //~ custom_real n;
-
- //~ BOOST_TEST(test_attr("-123456e6", double_, n));
- //~ }
-
- return boost::report_errors();
-}

Copied: branches/release/libs/spirit/test/qi/real.hpp (from r67494, /trunk/libs/spirit/test/qi/real.hpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/real.hpp (original)
+++ branches/release/libs/spirit/test/qi/real.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -115,6 +115,10 @@
     double n;
     custom_real() : n(0) {}
     custom_real(double n_) : n(n_) {}
+ friend bool operator==(custom_real a, custom_real b)
+ { return a.n == b.n; }
+ friend bool operator==(custom_real a, double b)
+ { return a.n == b; }
     friend custom_real operator*(custom_real a, custom_real b)
         { return custom_real(a.n * b.n); }
     friend custom_real operator+(custom_real a, custom_real b)

Copied: branches/release/libs/spirit/test/qi/real1.cpp (from r67494, /trunk/libs/spirit/test/qi/real1.cpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/real1.cpp (original)
+++ branches/release/libs/spirit/test/qi/real1.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,6 +1,7 @@
 /*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
- Copyright (c) 2001-2010 Hartmut Kaiser
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2001-2011 Hartmut Kaiser
+ Copyright (c) 2011 Bryce Lelbach
 
     Use, modification and distribution is subject to the Boost Software
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -15,9 +16,9 @@
     using spirit_test::test;
     using spirit_test::test_attr;
 
- ///////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////
     // thousand separated numbers
- ///////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////
     {
         using boost::spirit::qi::uint_parser;
         using boost::spirit::qi::parse;
@@ -35,16 +36,16 @@
         BOOST_TEST(!test("1,66", r));
     }
 
- ///////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////
     // unsigned real number tests
- ///////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////
     {
         using boost::spirit::qi::real_parser;
         using boost::spirit::qi::parse;
         using boost::spirit::qi::ureal_policies;
 
         real_parser<double, ureal_policies<double> > udouble;
- double d;
+ double d;
 
         BOOST_TEST(test("1234", udouble));
         BOOST_TEST(test_attr("1234", udouble, d) && compare(d, 1234));
@@ -75,20 +76,28 @@
         BOOST_TEST(test("infinity", udouble));
         BOOST_TEST(test("INF", udouble));
         BOOST_TEST(test("INFINITY", udouble));
- BOOST_TEST(test_attr("inf", udouble, d) && FP_INFINITE == fpclassify(d));
- BOOST_TEST(test_attr("INF", udouble, d) && FP_INFINITE == fpclassify(d));
- BOOST_TEST(test_attr("infinity", udouble, d) && FP_INFINITE == fpclassify(d));
- BOOST_TEST(test_attr("INFINITY", udouble, d) && FP_INFINITE == fpclassify(d));
+
+ BOOST_TEST(test_attr("inf", udouble, d)
+ && FP_INFINITE == fpclassify(d));
+ BOOST_TEST(test_attr("INF", udouble, d)
+ && FP_INFINITE == fpclassify(d));
+ BOOST_TEST(test_attr("infinity", udouble, d)
+ && FP_INFINITE == fpclassify(d));
+ BOOST_TEST(test_attr("INFINITY", udouble, d)
+ && FP_INFINITE == fpclassify(d));
 
         BOOST_TEST(test("nan", udouble));
- BOOST_TEST(test_attr("nan", udouble, d) && FP_NAN == fpclassify(d));
+ BOOST_TEST(test_attr("nan", udouble, d)
+ && FP_NAN == fpclassify(d));
         BOOST_TEST(test("NAN", udouble));
- BOOST_TEST(test_attr("NAN", udouble, d) && FP_NAN == fpclassify(d));
-
+ BOOST_TEST(test_attr("NAN", udouble, d)
+ && FP_NAN == fpclassify(d));
         BOOST_TEST(test("nan(...)", udouble));
- BOOST_TEST(test_attr("nan(...)", udouble, d) && FP_NAN == fpclassify(d));
+ BOOST_TEST(test_attr("nan(...)", udouble, d)
+ && FP_NAN == fpclassify(d));
         BOOST_TEST(test("NAN(...)", udouble));
- BOOST_TEST(test_attr("NAN(...)", udouble, d) && FP_NAN == fpclassify(d));
+ BOOST_TEST(test_attr("NAN(...)", udouble, d)
+ && FP_NAN == fpclassify(d));
 
         BOOST_TEST(!test("e3", udouble));
         BOOST_TEST(!test_attr("e3", udouble, d));

Copied: branches/release/libs/spirit/test/qi/real2.cpp (from r67494, /trunk/libs/spirit/test/qi/real2.cpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/real2.cpp (original)
+++ branches/release/libs/spirit/test/qi/real2.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,6 +1,7 @@
 /*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
- Copyright (c) 2001-2010 Hartmut Kaiser
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2001-2011 Hartmut Kaiser
+ Copyright (c) 2011 Bryce Lelbach
 
     Use, modification and distribution is subject to the Boost Software
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -14,9 +15,9 @@
 {
     using spirit_test::test;
     using spirit_test::test_attr;
-///////////////////////////////////////////////////////////////////////////////
-// signed real number tests
-///////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////
+ // signed real number tests
+ ///////////////////////////////////////////////////////////////////////////
     {
         using boost::spirit::qi::double_;
         using boost::spirit::qi::parse;

Copied: branches/release/libs/spirit/test/qi/real3.cpp (from r67494, /trunk/libs/spirit/test/qi/real3.cpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/real3.cpp (original)
+++ branches/release/libs/spirit/test/qi/real3.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -15,9 +15,9 @@
     using spirit_test::test;
     using spirit_test::test_attr;
     
- ///////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////
     // strict real number tests
- ///////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////
     {
         using boost::spirit::qi::real_parser;
         using boost::spirit::qi::parse;
@@ -60,13 +60,16 @@
         double d;
 
         BOOST_TEST(test("123,456,789.01", ts_real));
- BOOST_TEST(test_attr("123,456,789.01", ts_real, d) && compare(d, 123456789.01));
+ BOOST_TEST(test_attr("123,456,789.01", ts_real, d)
+ && compare(d, 123456789.01));
 
         BOOST_TEST(test("12,345,678.90", ts_real));
- BOOST_TEST(test_attr("12,345,678.90", ts_real, d) && compare(d, 12345678.90));
+ BOOST_TEST(test_attr("12,345,678.90", ts_real, d)
+ && compare(d, 12345678.90));
 
         BOOST_TEST(test("1,234,567.89", ts_real));
- BOOST_TEST(test_attr("1,234,567.89", ts_real, d) && compare(d, 1234567.89));
+ BOOST_TEST(test_attr("1,234,567.89", ts_real, d)
+ && compare(d, 1234567.89));
 
         BOOST_TEST(!test("1234,567,890", ts_real));
         BOOST_TEST(!test("1,234,5678,9", ts_real));

Copied: branches/release/libs/spirit/test/qi/real4.cpp (from r67494, /trunk/libs/spirit/test/qi/real4.cpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/real4.cpp (original)
+++ branches/release/libs/spirit/test/qi/real4.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,6 +1,7 @@
 /*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
- Copyright (c) 2001-2010 Hartmut Kaiser
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2001-2011 Hartmut Kaiser
+ Copyright (c) 2011 Bryce Lelbach
 
     Use, modification and distribution is subject to the Boost Software
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -61,21 +62,12 @@
     ///////////////////////////////////////////////////////////////////////////
     // custom real tests
     ///////////////////////////////////////////////////////////////////////////
- //~ {
- //~ using boost::spirit::qi::double_;
- //~ custom_real n;
-
- //~ 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);
- //}
+ {
+ using boost::spirit::qi::double_;
+ custom_real n;
+
+ BOOST_TEST(test_attr("-123456e6", double_, n));
+ }
 
     return boost::report_errors();
 }

Deleted: branches/release/libs/spirit/test/qi/reorder_test.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/reorder_test.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,79 +0,0 @@
-// Copyright (c) 2010 Olaf Peter
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/qi.hpp>
-#include <boost/fusion/include/nview.hpp>
-
-namespace qi = boost::spirit::qi;
-namespace ascii = boost::spirit::ascii;
-namespace phx = boost::phoenix;
-namespace fusion = boost::fusion;
-namespace mpl = boost::mpl;
-
-int main()
-{
- using fusion::result_of::as_nview;
- using fusion::at_c;
- using boost::optional;
- using boost::variant;
- using ascii::space_type;
- using ascii::no_case;
- using qi::lit;
- using qi::double_;
-
- typedef fusion::vector<
- optional<double>, // 0 - U
- optional<double>, // 1 - V
- optional<double> // 2 - W
- > uvw_type;
-
- typedef as_nview<uvw_type, 0, 1, 2>::type uvw_reordered_type;
- typedef as_nview<uvw_type, 2, 0, 1>::type vwu_reordered_type;
-
- typedef char const* iterator_type;
-
- qi::rule<iterator_type, optional<double>(), space_type> u,v,w;
- qi::rule<iterator_type, uvw_reordered_type(), space_type> uvw;
- qi::rule<iterator_type, vwu_reordered_type(), space_type> vwu;
-
- u = no_case[ "NA" ] | ( double_ >> -lit( "U" ) );
- v = no_case[ "NA" ] | ( double_ >> -lit( "V" ) );
- w = no_case[ "NA" ] | ( double_ >> -lit( "W" ) );
-
- uvw = u > v > w;
- vwu = v > w > u;
-
- uvw_type uvw_data;
- {
- iterator_type first = "1U 2V 3W";
- iterator_type last = first + std::strlen(first);
-
- uvw_reordered_type uvw_result( uvw_data );
-
- BOOST_TEST(qi::phrase_parse(first, last, uvw, ascii::space, uvw_result));
- BOOST_TEST(fusion::at_c<0>(uvw_result) && *fusion::at_c<0>(uvw_result) == 1);
- BOOST_TEST(fusion::at_c<1>(uvw_result) && *fusion::at_c<1>(uvw_result) == 2);
- BOOST_TEST(fusion::at_c<2>(uvw_result) && *fusion::at_c<2>(uvw_result) == 3);
- }
-
- {
- iterator_type first = "2V 3W 1U";
- iterator_type last = first + std::strlen(first);
-
- vwu_reordered_type uvw_result(uvw_data);
-
- BOOST_TEST(qi::phrase_parse(first, last, vwu, ascii::space, uvw_result));
- BOOST_TEST(fusion::at_c<0>(uvw_result) && *fusion::at_c<0>(uvw_result) == 2);
- BOOST_TEST(fusion::at_c<1>(uvw_result) && *fusion::at_c<1>(uvw_result) == 3);
- BOOST_TEST(fusion::at_c<2>(uvw_result) && *fusion::at_c<2>(uvw_result) == 1);
- }
-
- return boost::report_errors();
-}
-
-

Deleted: branches/release/libs/spirit/test/qi/repeat_regression.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/repeat_regression.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2010 Head Geek
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <iostream>
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/qi.hpp>
-
-namespace qi = boost::spirit::qi;
-using qi::omit;
-using qi::repeat;
-using std::cout;
-using std::endl;
-
-typedef qi::rule<std::string::const_iterator, std::string()> strrule_type;
-
-void test(const std::string input, strrule_type rule, std::string result)
-{
- std::string target;
- std::string::const_iterator i = input.begin(), ie = input.end();
-
- BOOST_TEST(qi::parse(i, ie, rule, target) && target == result);
-}
-
-int main()
-{
- strrule_type obsolete_year =
- omit[-qi::char_(" \t")] >>
- repeat(2)[qi::digit] >>
- omit[-qi::char_(" \t")];
- strrule_type correct_year = repeat(4)[qi::digit];
-
- test("1776", correct_year | repeat(2)[qi::digit], "1776");
- test("76", obsolete_year, "76");
- test("76", obsolete_year | correct_year, "76");
- test(" 76", correct_year | obsolete_year, "76");
- test("76", correct_year | obsolete_year, "76");
- test("76", correct_year | repeat(2)[qi::digit], "76");
-
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/qi/rule.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/rule.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,489 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-
-// this file deliberately contains non-ascii characters
-// boostinspect:noascii
-
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/qi_operator.hpp>
-#include <boost/spirit/include/qi_char.hpp>
-#include <boost/spirit/include/qi_string.hpp>
-#include <boost/spirit/include/qi_numeric.hpp>
-#include <boost/spirit/include/qi_auxiliary.hpp>
-#include <boost/spirit/include/qi_directive.hpp>
-#include <boost/spirit/include/qi_nonterminal.hpp>
-#include <boost/spirit/include/qi_action.hpp>
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-#include <boost/spirit/include/phoenix_object.hpp>
-#include <boost/spirit/include/phoenix_bind.hpp>
-#include <boost/fusion/include/std_pair.hpp>
-
-#include <string>
-#include <cstring>
-#include <iostream>
-#include "test.hpp"
-
-int
-main()
-{
- using spirit_test::test_attr;
- using spirit_test::test;
-
- using namespace boost::spirit::ascii;
- using namespace boost::spirit::qi::labels;
- using boost::spirit::qi::locals;
- using boost::spirit::qi::rule;
- using boost::spirit::qi::int_;
- using boost::spirit::qi::uint_;
- using boost::spirit::qi::fail;
- using boost::spirit::qi::on_error;
- using boost::spirit::qi::debug;
- using boost::spirit::qi::lit;
-
- namespace phx = boost::phoenix;
-
-
- { // basic tests
-
- rule<char const*> a, b, c, start;
-
- a = 'a';
- b = 'b';
- c = 'c';
-
- a.name("a");
- b.name("b");
- c.name("c");
- start.name("start");
-
- debug(a);
- debug(b);
- debug(c);
- debug(start);
-
- start = *(a | b | c);
- BOOST_TEST(test("abcabcacb", start));
-
- start = (a | b) >> (start | b);
- BOOST_TEST(test("aaaabababaaabbb", start));
- BOOST_TEST(test("aaaabababaaabba", start, false));
-
- // ignore the skipper!
- BOOST_TEST(test("aaaabababaaabba", start, space, false));
- }
-
- { // basic tests with direct initialization
-
- rule<char const*> a ('a');
- rule<char const*> b ('b');
- rule<char const*> c ('c');
- rule<char const*> start = (a | b) >> (start | b);
-
- BOOST_TEST(test("aaaabababaaabbb", start));
- BOOST_TEST(test("aaaabababaaabba", start, false));
-
- // ignore the skipper!
- BOOST_TEST(test("aaaabababaaabba", start, space, false));
- }
-
- { // basic tests w/ skipper
- rule<char const*, space_type> a, b, c, start;
-
- a = 'a';
- b = 'b';
- c = 'c';
-
- a.name("a");
- b.name("b");
- c.name("c");
- start.name("start");
-
- debug(a);
- debug(b);
- debug(c);
- debug(start);
-
- start = *(a | b | c);
- BOOST_TEST(test(" a b c a b c a c b ", start, space));
-
- start = (a | b) >> (start | b);
- BOOST_TEST(test(" a a a a b a b a b a a a b b b ", start, space));
- BOOST_TEST(test(" a a a a b a b a b a a a b b a ", start, space, false));
- }
-
- { // basic tests w/ skipper but no final post-skip
-
- rule<char const*, space_type> a, b, c, start;
-
- a = 'a';
- b = 'b';
- c = 'c';
-
- a.name("a");
- b.name("b");
- c.name("c");
- start.name("start");
-
- debug(a);
- debug(b);
- debug(c);
- debug(start);
-
- start = *(a | b) >> c;
-
- using boost::spirit::qi::phrase_parse;
- using boost::spirit::qi::skip_flag;
- {
- char const *s1 = " a b a a b b a c ... "
- , *const e1 = s1 + std::strlen(s1);
- BOOST_TEST(phrase_parse(s1, e1, start, space, skip_flag::dont_postskip)
- && s1 == e1 - 5);
- }
-
- start = (a | b) >> (start | c);
- {
- char const *s1 = " a a a a b a b a b a a a b b b c "
- , *const e1 = s1 + std::strlen(s1);
- BOOST_TEST(phrase_parse(s1, e1, start, space, skip_flag::postskip)
- && s1 == e1);
- }
- {
- char const *s1 = " a a a a b a b a b a a a b b b c "
- , *const e1 = s1 + std::strlen(s1);
- BOOST_TEST(phrase_parse(s1, e1, start, space, skip_flag::dont_postskip)
- && s1 == e1 - 1);
- }
- }
-
- { // test unassigned rule
-
- rule<char const*> a;
- BOOST_TEST(!test("x", a));
- }
-
- { // alias tests
-
- rule<char const*> a, b, c, d, start;
-
- a = 'a';
- b = 'b';
- c = 'c';
- d = start.alias(); // d will always track start
-
- start = *(a | b | c);
- BOOST_TEST(test("abcabcacb", d));
-
- start = (a | b) >> (start | b);
- BOOST_TEST(test("aaaabababaaabbb", d));
- }
-
- { // copy tests
-
- rule<char const*> a, b, c, start;
-
- a = 'a';
- b = 'b';
- c = 'c';
-
- // The FF is the dynamic equivalent of start = *(a | b | c);
- start = a;
- start = start.copy() | b;
- start = start.copy() | c;
- start = *(start.copy());
-
- BOOST_TEST(test("abcabcacb", start));
-
- // The FF is the dynamic equivalent of start = (a | b) >> (start | b);
- start = b;
- start = a | start.copy();
- start = start.copy() >> (start | b);
-
- BOOST_TEST(test("aaaabababaaabbb", start));
- BOOST_TEST(test("aaaabababaaabba", start, false));
- }
-
- { // context tests
-
- char ch;
- rule<char const*, char()> a;
- a = alpha[_val = _1];
-
- BOOST_TEST(test("x", a[phx::ref(ch) = _1]));
- BOOST_TEST(ch == 'x');
-
- BOOST_TEST(test_attr("z", a, ch)); // attribute is given.
- BOOST_TEST(ch == 'z');
- }
-
- { // auto rules tests
-
- char ch = '\0';
- rule<char const*, char()> a;
- a %= alpha;
-
- BOOST_TEST(test("x", a[phx::ref(ch) = _1]));
- BOOST_TEST(ch == 'x');
- ch = '\0';
- BOOST_TEST(test_attr("z", a, ch)); // attribute is given.
- BOOST_TEST(ch == 'z');
-
- a = alpha; // test deduced auto rule behavior
- ch = '\0';
- BOOST_TEST(test("x", a[phx::ref(ch) = _1]));
- BOOST_TEST(ch == 'x');
- ch = '\0';
- BOOST_TEST(test_attr("z", a, ch)); // attribute is given.
- BOOST_TEST(ch == 'z');
- }
-
- { // auto rules tests: allow stl containers as attributes to
- // sequences (in cases where attributes of the elements
- // are convertible to the value_type of the container or if
- // the element itself is an stl container with value_type
- // that is convertible to the value_type of the attribute).
-
- std::string s;
- rule<char const*, std::string()> r;
- r %= char_ >> *(',' >> char_);
-
- BOOST_TEST(test("a,b,c,d,e,f", r[phx::ref(s) = _1]));
- BOOST_TEST(s == "abcdef");
-
- r = char_ >> *(',' >> char_); // test deduced auto rule behavior
- s.clear();
- BOOST_TEST(test("a,b,c,d,e,f", r[phx::ref(s) = _1]));
- BOOST_TEST(s == "abcdef");
-
- r %= char_ >> char_ >> char_ >> char_ >> char_ >> char_;
- s.clear();
- BOOST_TEST(test("abcdef", r[phx::ref(s) = _1]));
- BOOST_TEST(s == "abcdef");
-
- r = char_ >> char_ >> char_ >> char_ >> char_ >> char_;
- s.clear();
- BOOST_TEST(test("abcdef", r[phx::ref(s) = _1]));
- BOOST_TEST(s == "abcdef");
- }
-
- { // synth attribute value-init
-
- std::string s;
- rule<char const*, char()> r;
- r = alpha[_val += _1];
- BOOST_TEST(test_attr("abcdef", +r, s));
- BOOST_TEST(s == "abcdef");
- }
-
- { // auto rules aliasing tests
-
- char ch = '\0';
- rule<char const*, char()> a, b;
- a %= b;
- b %= alpha;
-
- BOOST_TEST(test("x", a[phx::ref(ch) = _1]));
- BOOST_TEST(ch == 'x');
- ch = '\0';
- BOOST_TEST(test_attr("z", a, ch)); // attribute is given.
- BOOST_TEST(ch == 'z');
-
- a = b; // test deduced auto rule behavior
- b = alpha;
-
- ch = '\0';
- BOOST_TEST(test("x", a[phx::ref(ch) = _1]));
- BOOST_TEST(ch == 'x');
- ch = '\0';
- BOOST_TEST(test_attr("z", a, ch)); // attribute is given.
- BOOST_TEST(ch == 'z');
- }
-
- { // context (w/arg) tests
-
- char ch;
- rule<char const*, char(int)> a; // 1 arg
- a = alpha[_val = _1 + _r1];
-
- BOOST_TEST(test("x", a(phx::val(1))[phx::ref(ch) = _1]));
- BOOST_TEST(ch == 'x' + 1);
-
- BOOST_TEST(test_attr("a", a(1), ch)); // allow scalars as rule args too.
- BOOST_TEST(ch == 'a' + 1);
-
- rule<char const*, char(int, int)> b; // 2 args
- b = alpha[_val = _1 + _r1 + _r2];
- BOOST_TEST(test_attr("a", b(1, 2), ch));
- BOOST_TEST(ch == 'a' + 1 + 2);
- }
-
- { // context (w/ reference arg) tests
-
- char ch;
- rule<char const*, void(char&)> a; // 1 arg (reference)
- a = alpha[_r1 = _1];
-
- BOOST_TEST(test("x", a(phx::ref(ch))));
- BOOST_TEST(ch == 'x');
- }
-
- { // context (w/locals) tests
-
- rule<char const*, locals<char> > a; // 1 local
- a = alpha[_a = _1] >> char_(_a);
- BOOST_TEST(test("aa", a));
- BOOST_TEST(!test("ax", a));
- }
-
- { // context (w/args and locals) tests
-
- rule<char const*, void(int), locals<char> > a; // 1 arg + 1 local
- a = alpha[_a = _1 + _r1] >> char_(_a);
- BOOST_TEST(test("ab", a(phx::val(1))));
- BOOST_TEST(test("xy", a(phx::val(1))));
- BOOST_TEST(!test("ax", a(phx::val(1))));
- }
-
- { // void() has unused type (void == unused_type)
-
- std::pair<int, char> attr;
- rule<char const*, void()> r;
- r = char_;
- BOOST_TEST(test_attr("123ax", int_ >> char_ >> r, attr));
- BOOST_TEST(attr.first == 123);
- BOOST_TEST(attr.second == 'a');
- }
-
- { // bug: test that injected attributes are ok
-
- rule<char const*, char(int) > r;
-
- // problem code:
- r = char_(_r1)[_val = _1];
- }
-
- { // show that ra = rb and ra %= rb works as expected
- rule<char const*, int() > ra, rb;
- int attr;
-
- ra %= int_;
- BOOST_TEST(test_attr("123", ra, attr));
- BOOST_TEST(attr == 123);
-
- rb %= ra;
- BOOST_TEST(test_attr("123", rb, attr));
- BOOST_TEST(attr == 123);
-
- rb = ra;
- BOOST_TEST(test_attr("123", rb, attr));
- BOOST_TEST(attr == 123);
- }
-
- { // std::string as container attribute with auto rules
-
- rule<char const*, std::string()> text;
- text %= +(!char_(')') >> !char_('>') >> char_);
- std::string attr;
- BOOST_TEST(test_attr("x", text, attr));
- BOOST_TEST(attr == "x");
-
- // test deduced auto rule behavior
- text = +(!char_(')') >> !char_('>') >> char_);
- attr.clear();
- BOOST_TEST(test_attr("x", text, attr));
- BOOST_TEST(attr == "x");
- }
-
- { // error handling
-
- using namespace boost::spirit::ascii;
- using boost::phoenix::construct;
- using boost::phoenix::bind;
-
- rule<char const*> r;
- r = '(' > int_ > ',' > int_ > ')';
-
- on_error<fail>
- (
- r, std::cout
- << phx::val("Error! Expecting: ")
- << _4
- << phx::val(", got: \"")
- << construct<std::string>(_3, _2)
- << phx::val("\"")
- << std::endl
- );
-
- BOOST_TEST(test("(123,456)", r));
- BOOST_TEST(!test("(abc,def)", r));
- BOOST_TEST(!test("(123,456]", r));
- BOOST_TEST(!test("(123;456)", r));
- BOOST_TEST(!test("[123,456]", r));
- }
-
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
-#pragma setlocale("french")
-#endif
- { // specifying the encoding
-
- typedef boost::spirit::char_encoding::iso8859_1 iso8859_1;
- rule<char const*, iso8859_1> r;
-
- r = no_case['á'];
- BOOST_TEST(test("Á", r));
- r = no_case[char_('á')];
- BOOST_TEST(test("Á", r));
-
- r = no_case[char_("å-ï")];
- BOOST_TEST(test("É", r));
- BOOST_TEST(!test("ÿ", r));
-
- r = no_case["áÁ"];
- BOOST_TEST(test("Áá", r));
- r = no_case[lit("áÁ")];
- BOOST_TEST(test("Áá", r));
- }
-
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
-#pragma setlocale("")
-#endif
-
- {
- typedef boost::variant<double, int> v_type;
- rule<const char*, v_type()> r1 = int_;
- v_type v;
- BOOST_TEST(test_attr("1", r1, v) && v.which() == 1 &&
- boost::get<int>(v) == 1);
-
- typedef boost::optional<int> ov_type;
- rule<const char*, ov_type()> r2 = int_;
- ov_type ov;
- BOOST_TEST(test_attr("1", r2, ov) && ov && boost::get<int>(ov) == 1);
- }
-
- // test handling of single element fusion sequences
- {
- using boost::fusion::vector;
- using boost::fusion::at_c;
- rule<const char*, vector<int>()> r = int_;
-
- vector<int> v(0);
- BOOST_TEST(test_attr("1", r, v) && at_c<0>(v) == 1);
- }
-
- {
- using boost::fusion::vector;
- using boost::fusion::at_c;
- rule<const char*, vector<unsigned int>()> r = uint_;
-
- vector<unsigned int> v(0);
- BOOST_TEST(test_attr("1", r, v) && at_c<0>(v) == 1);
- }
-
- return boost::report_errors();
-}
-

Deleted: branches/release/libs/spirit/test/qi/single_element_sequence_attribute.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/single_element_sequence_attribute.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-// Copyright (c) 2010 Josh Wilson
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/spirit/include/qi.hpp>
-#include <boost/fusion/include/adapt_struct.hpp>
-#include <boost/variant.hpp>
-#include <string>
-
-namespace qi = boost::spirit::qi;
-
-///////////////////////////////////////////////////////////////////////////////
-struct Number { float base; };
-
-BOOST_FUSION_ADAPT_STRUCT( Number, (float, base) )
-
-void instantiate1()
-{
- qi::symbols<char, Number> sym;
- qi::rule<std::string::const_iterator, Number()> rule;
- rule %= sym; // Caused compiler error after getting r61322
-}
-
-///////////////////////////////////////////////////////////////////////////////
-typedef boost::variant<int, float> internal_type;
-
-struct Number2 { internal_type base; };
-
-BOOST_FUSION_ADAPT_STRUCT( Number2, (internal_type, base) )
-
-void instantiate2()
-{
- qi::symbols<char, Number2> sym;
- qi::rule<std::string::const_iterator, Number2()> rule;
- rule %= sym; // Caused compiler error after getting r61322
-}
-

Deleted: branches/release/libs/spirit/test/qi/symbols.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/symbols.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,364 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/qi_string.hpp>
-#include <boost/spirit/include/qi_char.hpp>
-#include <boost/spirit/include/qi_action.hpp>
-#include <boost/spirit/include/qi_auxiliary.hpp>
-#include <boost/spirit/include/qi_directive.hpp>
-#include <boost/spirit/include/qi_operator.hpp>
-#include <boost/spirit/include/qi_nonterminal.hpp>
-#include <boost/spirit/include/support_argument.hpp>
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-
-#include <iostream>
-#include "test.hpp"
-
-// Custom string type with a C-style string conversion.
-struct custom_string_c
-{
- custom_string_c(char c) { str[0] = c; str[1] = '\0'; }
-
- operator char*() { return str; }
- operator char const*() const { return str; }
-
-private:
- char str[2];
-};
-
-int
-main()
-{
- using spirit_test::test;
- using spirit_test::test_attr;
- using boost::spirit::qi::symbols;
- using boost::spirit::qi::rule;
- using boost::spirit::qi::lazy;
- using boost::spirit::qi::_r1;
-
- { // basics
- symbols<char, int> sym;
-
- sym.add
- ("Joel")
- ("Ruby")
- ("Tenji")
- ("Tutit")
- ("Kim")
- ("Joey")
- ;
-
- boost::mpl::true_ f = boost::mpl::bool_<boost::spirit::traits::is_parser<symbols<char, int> >::value>();
-
- // silence stupid compiler warnings
- // i.e. MSVC warning C4189: 'f' : local variable is initialized but not referenced
- BOOST_TEST((f.value));
-
- BOOST_TEST((test("Joel", sym)));
- BOOST_TEST((test("Ruby", sym)));
- BOOST_TEST((test("Tenji", sym)));
- BOOST_TEST((test("Tutit", sym)));
- BOOST_TEST((test("Kim", sym)));
- BOOST_TEST((test("Joey", sym)));
- BOOST_TEST((!test("XXX", sym)));
-
- // test copy
- symbols<char, int> sym2;
- sym2 = sym;
- BOOST_TEST((test("Joel", sym2)));
- BOOST_TEST((test("Ruby", sym2)));
- BOOST_TEST((test("Tenji", sym2)));
- BOOST_TEST((test("Tutit", sym2)));
- BOOST_TEST((test("Kim", sym2)));
- BOOST_TEST((test("Joey", sym2)));
- BOOST_TEST((!test("XXX", sym2)));
-
- // make sure it plays well with other parsers
- BOOST_TEST((test("Joelyo", sym >> "yo")));
-
- sym.remove
- ("Joel")
- ("Ruby")
- ;
-
- BOOST_TEST((!test("Joel", sym)));
- BOOST_TEST((!test("Ruby", sym)));
- }
-
- { // comma syntax
- symbols<char, int> sym;
- sym += "Joel", "Ruby", "Tenji", "Tutit", "Kim", "Joey";
-
- BOOST_TEST((test("Joel", sym)));
- BOOST_TEST((test("Ruby", sym)));
- BOOST_TEST((test("Tenji", sym)));
- BOOST_TEST((test("Tutit", sym)));
- BOOST_TEST((test("Kim", sym)));
- BOOST_TEST((test("Joey", sym)));
- BOOST_TEST((!test("XXX", sym)));
-
- sym -= "Joel", "Ruby";
-
- BOOST_TEST((!test("Joel", sym)));
- BOOST_TEST((!test("Ruby", sym)));
- }
-
- { // no-case handling
- using namespace boost::spirit::ascii;
-
- symbols<char, int> sym;
- // NOTE: make sure all entries are in lower-case!!!
- sym = "joel", "ruby", "tenji", "tutit", "kim", "joey";
-
- BOOST_TEST((test("joel", no_case[sym])));
- BOOST_TEST((test("ruby", no_case[sym])));
- BOOST_TEST((test("tenji", no_case[sym])));
- BOOST_TEST((test("tutit", no_case[sym])));
- BOOST_TEST((test("kim", no_case[sym])));
- BOOST_TEST((test("joey", no_case[sym])));
-
- BOOST_TEST((test("JOEL", no_case[sym])));
- BOOST_TEST((test("RUBY", no_case[sym])));
- BOOST_TEST((test("TENJI", no_case[sym])));
- BOOST_TEST((test("TUTIT", no_case[sym])));
- BOOST_TEST((test("KIM", no_case[sym])));
- BOOST_TEST((test("JOEY", no_case[sym])));
-
- // make sure it plays well with other parsers
- BOOST_TEST((test("Joelyo", no_case[sym] >> "yo")));
- }
-
- { // attributes
- symbols<char, int> sym;
-
- sym.add
- ("Joel", 1)
- ("Ruby", 2)
- ("Tenji", 3)
- ("Tutit", 4)
- ("Kim", 5)
- ("Joey", 6)
- ;
-
- int i;
- BOOST_TEST((test_attr("Joel", sym, i)));
- BOOST_TEST(i == 1);
- BOOST_TEST((test_attr("Ruby", sym, i)));
- BOOST_TEST(i == 2);
- BOOST_TEST((test_attr("Tenji", sym, i)));
- BOOST_TEST(i == 3);
- BOOST_TEST((test_attr("Tutit", sym, i)));
- BOOST_TEST(i == 4);
- BOOST_TEST((test_attr("Kim", sym, i)));
- BOOST_TEST(i == 5);
- BOOST_TEST((test_attr("Joey", sym, i)));
- BOOST_TEST(i == 6);
- BOOST_TEST((!test_attr("XXX", sym, i)));
-
- // double add:
-
- sym.add("Joel", 265);
- BOOST_TEST((test_attr("Joel", sym, i)));
- BOOST_TEST(i == 1);
- }
-
- { // actions
- namespace phx = boost::phoenix;
- using boost::spirit::_1;
-
- symbols<char, int> sym;
- sym.add
- ("Joel", 1)
- ("Ruby", 2)
- ("Tenji", 3)
- ("Tutit", 4)
- ("Kim", 5)
- ("Joey", 6)
- ;
-
- int i;
- BOOST_TEST((test("Joel", sym[phx::ref(i) = _1])));
- BOOST_TEST(i == 1);
- BOOST_TEST((test("Ruby", sym[phx::ref(i) = _1])));
- BOOST_TEST(i == 2);
- BOOST_TEST((test("Tenji", sym[phx::ref(i) = _1])));
- BOOST_TEST(i == 3);
- BOOST_TEST((test("Tutit", sym[phx::ref(i) = _1])));
- BOOST_TEST(i == 4);
- BOOST_TEST((test("Kim", sym[phx::ref(i) = _1])));
- BOOST_TEST(i == 5);
- BOOST_TEST((test("Joey", sym[phx::ref(i) = _1])));
- BOOST_TEST(i == 6);
- BOOST_TEST((!test("XXX", sym[phx::ref(i) = _1])));
- }
-
- { // construction from symbol array
- char const* syms[] = {"Joel","Ruby","Tenji","Tutit","Kim","Joey"};
- symbols<char, int> sym(syms);
-
- BOOST_TEST((test("Joel", sym)));
- BOOST_TEST((test("Ruby", sym)));
- BOOST_TEST((test("Tenji", sym)));
- BOOST_TEST((test("Tutit", sym)));
- BOOST_TEST((test("Kim", sym)));
- BOOST_TEST((test("Joey", sym)));
- BOOST_TEST((!test("XXX", sym)));
- }
-
- { // construction from 2 arrays
-
- char const* syms[] = {"Joel","Ruby","Tenji","Tutit","Kim","Joey"};
- int data[] = {1,2,3,4,5,6};
- symbols<char, int> sym(syms, data);
-
- int i;
- BOOST_TEST((test_attr("Joel", sym, i)));
- BOOST_TEST(i == 1);
- BOOST_TEST((test_attr("Ruby", sym, i)));
- BOOST_TEST(i == 2);
- BOOST_TEST((test_attr("Tenji", sym, i)));
- BOOST_TEST(i == 3);
- BOOST_TEST((test_attr("Tutit", sym, i)));
- BOOST_TEST(i == 4);
- BOOST_TEST((test_attr("Kim", sym, i)));
- BOOST_TEST(i == 5);
- BOOST_TEST((test_attr("Joey", sym, i)));
- BOOST_TEST(i == 6);
- BOOST_TEST((!test_attr("XXX", sym, i)));
- }
-
- { // allow std::string and other string types
- symbols<> sym;
-
- // const and non-const std::string
- std::string a("abc");
- std::string const b("def");
- sym += a;
- sym += b;
- BOOST_TEST((test("abc", sym)));
- BOOST_TEST((test("def", sym)));
- sym = a;
- BOOST_TEST((test("abc", sym)));
- BOOST_TEST((!test("def", sym)));
-
- // non-const C-style string
- char arr[2]; arr[0] = 'a'; arr[1] = '\0';
- sym = arr;
- BOOST_TEST((test("a", sym)));
- BOOST_TEST((!test("b", sym)));
-
- // const and non-const custom string type
- custom_string_c c('x');
- custom_string_c const cc('y');
- sym = c, cc;
- BOOST_TEST((test("x", sym)));
- BOOST_TEST((test("y", sym)));
- BOOST_TEST((!test("z", sym)));
- }
-
- {
- namespace phx = boost::phoenix;
-
- symbols<char, int> sym;
- sym.add
- ("a", 1)
- ("b", 2)
- ;
-
- rule<char const*, int(symbols<char, int>&)> r;
- r %= lazy(_r1);
-
- int i = 0;
- BOOST_TEST(test_attr("a", r(phx::ref(sym)), i));
- BOOST_TEST(i == 1);
- BOOST_TEST(test_attr("b", r(phx::ref(sym)), i));
- BOOST_TEST(i == 2);
- BOOST_TEST(!test("c", r(phx::ref(sym))));
- }
-
- { // find
-
- symbols<char, int> sym;
- sym.add("a", 1)("b", 2);
-
- BOOST_TEST(!sym.find("c"));
-
- BOOST_TEST(sym.find("a") && *sym.find("a") == 1);
- BOOST_TEST(sym.find("b") && *sym.find("b") == 2);
-
- BOOST_TEST(sym.at("a") == 1);
- BOOST_TEST(sym.at("b") == 2);
- BOOST_TEST(sym.at("c") == 0);
-
- BOOST_TEST(sym.find("a") && *sym.find("a") == 1);
- BOOST_TEST(sym.find("b") && *sym.find("b") == 2);
- BOOST_TEST(sym.find("c") && *sym.find("c") == 0);
-
- symbols<char, int> const_sym(sym);
-
- BOOST_TEST(const_sym.find("a") && *const_sym.find("a") == 1);
- BOOST_TEST(const_sym.find("b") && *const_sym.find("b") == 2);
- BOOST_TEST(const_sym.find("c") && *const_sym.find("c") == 0);
- BOOST_TEST(!const_sym.find("d"));
-
- char const *str1 = "all";
- char const *first = str1, *last = str1 + 3;
- BOOST_TEST(*sym.prefix_find(first, last) == 1 && first == str1 + 1);
-
- char const *str2 = "dart";
- first = str2; last = str2 + 4;
- BOOST_TEST(!sym.prefix_find(first, last) && first == str2);
- }
-
- { // Substrings
-
- symbols<char, int> sym;
- BOOST_TEST(sym.at("foo") == 0);
- sym.at("foo") = 1;
- BOOST_TEST(sym.at("foo") == 1);
- BOOST_TEST(sym.at("fool") == 0);
- sym.at("fool") = 2;
- BOOST_TEST(sym.find("foo") && *sym.find("foo") == 1);
- BOOST_TEST(sym.find("fool") && *sym.find("fool") == 2);
- BOOST_TEST(!sym.find("foolish"));
- BOOST_TEST(!sym.find("foot"));
- BOOST_TEST(!sym.find("afoot"));
-
- char const *str, *first, *last;
- str = "foolish"; first = str; last = str + 7;
- BOOST_TEST(*sym.prefix_find(first, last) == 2 && first == str + 4);
-
- first = str; last = str + 4;
- BOOST_TEST(*sym.prefix_find(first, last) == 2 && first == str + 4);
-
- str = "food"; first = str; last = str + 4;
- BOOST_TEST(*sym.prefix_find(first, last) == 1 && first == str + 3);
-
- first = str; last = str + 3;
- BOOST_TEST(*sym.prefix_find(first, last) == 1 && first == str + 3);
-
- first = str; last = str + 2;
- BOOST_TEST(!sym.prefix_find(first, last) && first == str);
- }
-
- {
- // remove bug
-
- std::string s;
- symbols<char, double> vars;
-
- vars.add("l1", 12.0);
- vars.add("l2", 0.0);
- vars.remove("l2");
- vars.find("l1");
- double* d = vars.find("l1");
- BOOST_TEST(d != 0);
- }
-
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/qi/uint.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/uint.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,226 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
- Copyright (c) 2001-2010 Hartmut Kaiser
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-#include <climits>
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/spirit/include/qi_numeric.hpp>
-#include <boost/spirit/include/qi_char.hpp>
-#include <boost/spirit/include/qi_action.hpp>
-#include <boost/spirit/include/support_argument.hpp>
-#include <boost/spirit/include/phoenix_core.hpp>
-#include <boost/spirit/include/phoenix_operator.hpp>
-
-#include "test.hpp"
-#include <cstring>
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// *** BEWARE PLATFORM DEPENDENT!!! ***
-// *** The following assumes 32 bit integers and 64 bit long longs.
-// *** Modify these constant strings when appropriate.
-//
-///////////////////////////////////////////////////////////////////////////////
-
- char const* max_unsigned = "4294967295";
- char const* unsigned_overflow = "4294967296";
- char const* max_int = "2147483647";
- char const* int_overflow = "2147483648";
- char const* min_int = "-2147483648";
- char const* int_underflow = "-2147483649";
- char const* max_binary = "11111111111111111111111111111111";
- char const* binary_overflow = "100000000000000000000000000000000";
- char const* max_octal = "37777777777";
- char const* octal_overflow = "100000000000";
- char const* max_hex = "FFFFFFFF";
- char const* hex_overflow = "100000000";
-
-///////////////////////////////////////////////////////////////////////////////
-// A custom int type
-struct custom_int
-{
- int n;
- custom_int() : n(0) {}
- explicit custom_int(int n_) : n(n_) {}
- custom_int& operator=(int n_) { n = n_; return *this; }
- friend custom_int operator*(custom_int a, custom_int b)
- { return custom_int(a.n * b.n); }
- friend custom_int operator+(custom_int a, custom_int b)
- { return custom_int(a.n + b.n); }
-};
-
-int
-main()
-{
- using spirit_test::test;
- using spirit_test::test_attr;
- ///////////////////////////////////////////////////////////////////////////
- // unsigned tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::uint_;
- unsigned u;
-
- BOOST_TEST(test("123456", uint_));
- BOOST_TEST(test_attr("123456", uint_, u));
- BOOST_TEST(u == 123456);
-
- BOOST_TEST(test(max_unsigned, uint_));
- BOOST_TEST(test_attr(max_unsigned, uint_, u));
- BOOST_TEST(u == UINT_MAX);
-
- BOOST_TEST(!test(unsigned_overflow, uint_));
- BOOST_TEST(!test_attr(unsigned_overflow, uint_, u));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // binary tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::bin;
- unsigned u;
-
- BOOST_TEST(test("11111110", bin));
- BOOST_TEST(test_attr("11111110", bin, u));
- BOOST_TEST(u == 0xFE);
-
- BOOST_TEST(test(max_binary, bin));
- BOOST_TEST(test_attr(max_binary, bin, u));
- BOOST_TEST(u == UINT_MAX);
-
- BOOST_TEST(!test(binary_overflow, bin));
- BOOST_TEST(!test_attr(binary_overflow, bin, u));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // octal tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::oct;
- unsigned u;
-
- BOOST_TEST(test("12545674515", oct));
- BOOST_TEST(test_attr("12545674515", oct, u));
- BOOST_TEST(u == 012545674515);
-
- BOOST_TEST(test(max_octal, oct));
- BOOST_TEST(test_attr(max_octal, oct, u));
- BOOST_TEST(u == UINT_MAX);
-
- BOOST_TEST(!test(octal_overflow, oct));
- BOOST_TEST(!test_attr(octal_overflow, oct, u));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // hex tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::hex;
- unsigned u;
-
- BOOST_TEST(test("95BC8DF", hex));
- BOOST_TEST(test_attr("95BC8DF", hex, u));
- BOOST_TEST(u == 0x95BC8DF);
-
- BOOST_TEST(test("abcdef12", hex));
- BOOST_TEST(test_attr("abcdef12", hex, u));
- BOOST_TEST(u == 0xabcdef12);
-
- BOOST_TEST(test(max_hex, hex));
- BOOST_TEST(test_attr(max_hex, hex, u));
- BOOST_TEST(u == UINT_MAX);
-
- BOOST_TEST(!test(hex_overflow, hex));
- BOOST_TEST(!test_attr(hex_overflow, hex, u));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // limited fieldwidth
- ///////////////////////////////////////////////////////////////////////////
- {
- unsigned u;
- using boost::spirit::qi::uint_parser;
-
- uint_parser<unsigned, 10, 1, 3> uint3;
- BOOST_TEST(test("123456", uint3, false));
- BOOST_TEST(test_attr("123456", uint3, u, false));
- BOOST_TEST(u == 123);
-
- uint_parser<unsigned, 10, 2, 4> uint4;
- BOOST_TEST(test("123456", uint4, false));
- BOOST_TEST(test_attr("123456", uint4, u, false));
- BOOST_TEST(u == 1234);
-
- char const * first = "0000000";
- char const * last = first + std::strlen(first);
- uint_parser<unsigned, 10, 4, 4> uint_exact4;
- BOOST_TEST(boost::spirit::qi::parse(first, last, uint_exact4, u)
- && first != last && (last-first == 3) && u == 0);
-
- first = "0001400";
- last = first + std::strlen(first);
- BOOST_TEST(boost::spirit::qi::parse(first, last, uint_exact4, u)
- && first != last && (last-first == 3) && u == 1);
-
- BOOST_TEST(!test("1", uint4));
- BOOST_TEST(!test_attr("1", uint4, u));
- BOOST_TEST(test_attr("014567", uint4, u, false) && u == 145);
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // uint_parser<unused_type> tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::uint_parser;
- using boost::spirit::qi::unused_type;
- uint_parser<unused_type> any_int;
-
- BOOST_TEST(test("123456", any_int));
- BOOST_TEST(test("1234567890123456789", any_int));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // action tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::phoenix::ref;
- using boost::spirit::qi::_1;
- using boost::spirit::qi::uint_;
- using boost::spirit::ascii::space;
- int n;
-
- BOOST_TEST(test("123", uint_[ref(n) = _1]));
- BOOST_TEST(n == 123);
- BOOST_TEST(test(" 456", uint_[ref(n) = _1], space));
- BOOST_TEST(n == 456);
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // Check overflow is parse error
- ///////////////////////////////////////////////////////////////////////////
- {
- boost::spirit::qi::uint_parser<boost::uint8_t> uint8_;
- boost::uint8_t u;
-
- BOOST_TEST(!test_attr("999", uint8_, u));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // custom uint tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::uint_;
- using boost::spirit::qi::uint_parser;
- custom_int u;
-
- BOOST_TEST(test_attr("123456", uint_, u));
-
- uint_parser<custom_int, 10, 1, 2> uint2;
- BOOST_TEST(test_attr("12", uint2, u));
- }
-
- return boost::report_errors();
-}

Copied: branches/release/libs/spirit/test/qi/uint.hpp (from r67508, /trunk/libs/spirit/test/qi/uint.hpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/uint.hpp (original)
+++ branches/release/libs/spirit/test/qi/uint.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -44,18 +44,20 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 // A custom int type
-struct custom_int
+struct custom_uint
 {
- int n;
- custom_int() : n(0) {}
- explicit custom_int(int n_) : n(n_) {}
- custom_int& operator=(int n_) { n = n_; return *this; }
- friend bool operator==(custom_int a, custom_int b)
+ unsigned n;
+ custom_uint() : n(0) {}
+ explicit custom_uint(unsigned n_) : n(n_) {}
+ custom_uint& operator=(unsigned n_) { n = n_; return *this; }
+ friend bool operator==(custom_uint a, custom_uint b)
         { return a.n == b.n; }
- friend custom_int operator*(custom_int a, custom_int b)
- { return custom_int(a.n * b.n); }
- friend custom_int operator+(custom_int a, custom_int b)
- { return custom_int(a.n + b.n); }
+ friend bool operator==(custom_uint a, unsigned b)
+ { return a.n == b; }
+ friend custom_uint operator*(custom_uint a, custom_uint b)
+ { return custom_uint(a.n * b.n); }
+ friend custom_uint operator+(custom_uint a, custom_uint b)
+ { return custom_uint(a.n + b.n); }
 };
 
 #endif

Copied: branches/release/libs/spirit/test/qi/uint1.cpp (from r67508, /trunk/libs/spirit/test/qi/uint1.cpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/uint1.cpp (original)
+++ branches/release/libs/spirit/test/qi/uint1.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -128,18 +128,6 @@
     }
 
     ///////////////////////////////////////////////////////////////////////////
- // uint_parser<unused_type> tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::qi::uint_parser;
- using boost::spirit::qi::unused_type;
- uint_parser<unused_type> any_int;
-
- BOOST_TEST(test("123456", any_int));
- BOOST_TEST(test("1234567890123456789", any_int));
- }
-
- ///////////////////////////////////////////////////////////////////////////
     // action tests
     ///////////////////////////////////////////////////////////////////////////
     {
@@ -171,11 +159,10 @@
     {
         using boost::spirit::qi::uint_;
         using boost::spirit::qi::uint_parser;
- custom_int u;
+ custom_uint u;
 
         BOOST_TEST(test_attr("123456", uint_, u));
-
- uint_parser<custom_int, 10, 1, 2> uint2;
+ uint_parser<custom_uint, 10, 1, 2> uint2;
         BOOST_TEST(test_attr("12", uint2, u));
     }
 

Copied: branches/release/libs/spirit/test/qi/uint2.cpp (from r67508, /trunk/libs/spirit/test/qi/uint2.cpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/uint2.cpp (original)
+++ branches/release/libs/spirit/test/qi/uint2.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -1,6 +1,5 @@
 /*=============================================================================
     Copyright (c) 2001-2011 Joel de Guzman
- Copyright (c) 2001-2011 Hartmut Kaiser
     Copyright (c) 2011 Bryce Lelbach
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -14,75 +13,79 @@
 {
     using spirit_test::test;
     using spirit_test::test_attr;
+
     ///////////////////////////////////////////////////////////////////////////
- // unsigned tests
+ // unsigned integer literal tests
     ///////////////////////////////////////////////////////////////////////////
     {
- using boost::spirit::qi::uint_;
- unsigned u = 123456;
-
- BOOST_TEST( test("123456", uint_(123456)));
- BOOST_TEST(!test("123456", uint_(4321)));
- BOOST_TEST( test("123456", uint_(u)));
- BOOST_TEST(!test("123456", uint_(u - 1)));
+ using boost::spirit::lit;
+ unsigned i = 123456;
 
- BOOST_TEST(test(max_unsigned, uint_(UINT_MAX)));
-
- BOOST_TEST(!test(unsigned_overflow, uint_(345)));
+ BOOST_TEST( test("123456", lit(123456U)));
+ BOOST_TEST(!test("123456", lit(0U)));
+ BOOST_TEST( test("123456", 123456U));
+ BOOST_TEST(!test("123456", 0U));
+
+ BOOST_TEST( test("123456", lit(i)));
+ BOOST_TEST(!test("123456", lit(unsigned(i - 1))));
+ BOOST_TEST( test("123456", i));
+ BOOST_TEST(!test("123456", unsigned(i - 1)));
     }
 
     ///////////////////////////////////////////////////////////////////////////
- // binary tests
+ // unsigned long long literal tests
     ///////////////////////////////////////////////////////////////////////////
+#ifdef BOOST_HAS_LONG_LONG
     {
- using boost::spirit::qi::bin;
- unsigned u = 0xFE;
-
- BOOST_TEST( test("11111110", bin(0xFE)));
- BOOST_TEST(!test("11111110", bin(0xEF)));
- BOOST_TEST( test("11111110", bin(u)));
- BOOST_TEST(!test("11111110", bin(u - 1)));
-
- BOOST_TEST(test(max_binary, bin(UINT_MAX)));
-
- BOOST_TEST(!test(binary_overflow, bin(9)));
+ using boost::spirit::lit;
+ using boost::ulong_long_type;
+ ulong_long_type ll = 1234567890123456789ULL;
+
+ BOOST_TEST( test("1234567890123456789", lit(1234567890123456789ULL)));
+ BOOST_TEST(!test("1234567890123456789", lit(0ULL)));
+ BOOST_TEST( test("1234567890123456789", 1234567890123456789ULL));
+ BOOST_TEST(!test("1234567890123456789", 0ULL));
+
+ BOOST_TEST( test("1234567890123456789", lit(ll)));
+ BOOST_TEST(!test("1234567890123456789", lit(ulong_long_type(ll - 1))));
+ BOOST_TEST( test("1234567890123456789", ll));
+ BOOST_TEST(!test("1234567890123456789", ulong_long_type(ll - 1)));
     }
+#endif
 
     ///////////////////////////////////////////////////////////////////////////
- // octal literal tests
+ // ushort_ and ulong_ literal tests
     ///////////////////////////////////////////////////////////////////////////
     {
- using boost::spirit::qi::oct;
- unsigned u = 012545674515;
-
- BOOST_TEST( test("12545674515", oct(012545674515)));
- BOOST_TEST(!test("12545674515", oct(051554521)));
- BOOST_TEST( test("12545674515", oct(u)));
- BOOST_TEST(!test("12545674515", oct(u + 1)));
-
- BOOST_TEST(test(max_octal, oct(UINT_MAX)));
-
- BOOST_TEST(!test(octal_overflow, oct(12)));
+ using boost::spirit::lit;
+ unsigned short s = 12345;
+ unsigned long l = 1234567890L;
+
+ BOOST_TEST( test("12345", lit(s)));
+ BOOST_TEST(!test("12345", lit(s - 1)));
+ BOOST_TEST( test("12345", s));
+ BOOST_TEST(!test("12345", s - 1));
+
+ BOOST_TEST( test("1234567890", lit(1234567890UL)));
+ BOOST_TEST(!test("1234567890", lit(98765321UL)));
+ BOOST_TEST( test("1234567890", lit(l)));
+ BOOST_TEST(!test("1234567890", lit(l - 1)));
+ BOOST_TEST( test("1234567890", 1234567890UL));
+ BOOST_TEST(!test("1234567890", 987654321UL));
+ BOOST_TEST( test("1234567890", l));
+ BOOST_TEST(!test("1234567890", l - 1));
     }
-
+
     ///////////////////////////////////////////////////////////////////////////
- // hex literal tests
+ // literal lazy tests
     ///////////////////////////////////////////////////////////////////////////
     {
- using boost::spirit::qi::hex;
- unsigned u = 0x95BC8DF;
-
- BOOST_TEST( test("95BC8DF", hex(0x95BC8DF)));
- BOOST_TEST(!test("95BC8DF", hex(0xFD8C9)));
- BOOST_TEST( test("95BC8DF", hex(u)));
- BOOST_TEST(!test("95BC8DF", hex(u + 1)));
-
- BOOST_TEST( test("abcdef12", hex(0xabcdef12)));
- BOOST_TEST(!test("abcdef12", hex(0x12abcdef)));
-
- BOOST_TEST(test(max_hex, hex(UINT_MAX)));
+ using boost::phoenix::ref;
+ using boost::spirit::qi::lit;
+ unsigned n = 123, m = 321;
 
- BOOST_TEST(!test(hex_overflow, hex(0xdd)));
+ BOOST_TEST(test("123", lit(ref(n))));
+ BOOST_TEST(!test("123", lit(ref(m))));
     }
 
     return boost::report_errors();

Deleted: branches/release/libs/spirit/test/qi/utree.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/utree.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,340 +0,0 @@
-// Copyright (c) 2001-2010 Hartmut Kaiser
-// Copyright (c) 2001-2010 Joel de Guzman
-// Copyright (c) 2010 Bryce Lelbach
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/support_utree.hpp>
-#include <boost/spirit/include/qi.hpp>
-#include <boost/mpl/print.hpp>
-
-#include <sstream>
-
-#include "test.hpp"
-
-inline bool check(boost::spirit::utree const& val, std::string expected)
-{
- std::stringstream s;
- s << val;
- if (s.str() == expected + " ")
- return true;
-
- std::cerr << "got result: " << s.str()
- << ", expected: " << expected << std::endl;
- return false;
-}
-
-int main()
-{
- using spirit_test::test_attr;
- using boost::spirit::utree;
- using boost::spirit::utree_type;
- using boost::spirit::utf8_string_range_type;
- using boost::spirit::utf8_symbol_type;
- using boost::spirit::utf8_string_type;
-
- using boost::spirit::qi::real_parser;
- using boost::spirit::qi::strict_real_policies;
- using boost::spirit::qi::digit;
- using boost::spirit::qi::char_;
- using boost::spirit::qi::string;
- using boost::spirit::qi::int_;
- using boost::spirit::qi::double_;
- using boost::spirit::qi::space;
- using boost::spirit::qi::rule;
- using boost::spirit::qi::as;
- using boost::spirit::qi::lexeme;
-
- // primitive data types
- {
- utree ut;
- BOOST_TEST(test_attr("x", char_, ut) &&
- ut.which() == utree_type::string_type && check(ut, "\"x\""));
- ut.clear();
- BOOST_TEST(test_attr("123", int_, ut) &&
- ut.which() == utree_type::int_type && check(ut, "123"));
- ut.clear();
- BOOST_TEST(test_attr("123.45", double_, ut) &&
- ut.which() == utree_type::double_type && check(ut, "123.45"));
- ut.clear();
-
- rule<char const*, utf8_string_type()> r1 = lexeme[*char_];
-
- BOOST_TEST(test_attr("foo", r1, ut) &&
- ut.which() == utree_type::string_type && check(ut, "\"foo\""));
- ut.clear();
-
- rule<char const*, utf8_symbol_type()> r2 = lexeme[*char_];
-
- BOOST_TEST(test_attr("xyz", r2, ut) &&
- ut.which() == utree_type::symbol_type && check(ut, "xyz"));
- }
-
- // single character parsers
- {
- utree ut;
- rule<char const*, utree()> r = char_("abc");
-
- BOOST_TEST(test_attr("a", r, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"a\" )"));
- }
-
- // sequences
- {
- using boost::spirit::qi::as_string;
-
- utree ut;
- BOOST_TEST(test_attr("xy", char_ >> char_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"x\" \"y\" )"));
- ut.clear();
- BOOST_TEST(test_attr("123 456", int_ >> int_, ut, space) &&
- ut.which() == utree_type::list_type && check(ut, "( 123 456 )"));
- ut.clear();
- BOOST_TEST(test_attr("1.23 4.56", double_ >> double_, ut, space) &&
- ut.which() == utree_type::list_type && check(ut, "( 1.23 4.56 )"));
-
- ut.clear();
- BOOST_TEST(test_attr("1.2ab", double_ >> *char_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 1.2 \"a\" \"b\" )"));
- ut.clear();
- BOOST_TEST(test_attr("ab1.2", *~digit >> double_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"a\" \"b\" 1.2 )"));
-
- rule<char const*, utree()> r1 = double_;
- ut.clear();
- BOOST_TEST(test_attr("1.2ab", r1 >> *char_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( ( 1.2 ) \"a\" \"b\" )"));
- ut.clear();
- BOOST_TEST(test_attr("ab1.2", *~digit >> r1, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"a\" \"b\" ( 1.2 ) )"));
- ut.clear();
-
- rule<char const*, utree()> r2 = int_ >> char_("!") >> double_;
-
- BOOST_TEST(test_attr("17!3.14", r2, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 17 \"!\" 3.14 )"));
- ut.clear();
-
- rule<char const*, utree()> r3 = double_ >> as_string[string("foo")] >> int_;
-
- BOOST_TEST(test_attr("0.5foo5", r3, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 0.5 \"foo\" 5 )"));
-
- ut.clear();
- }
-
- // kleene star
- {
- utree ut;
- BOOST_TEST(test_attr("xy", *char_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"x\" \"y\" )"));
- ut.clear();
- BOOST_TEST(test_attr("123 456", *int_, ut, space) &&
- ut.which() == utree_type::list_type && check(ut, "( 123 456 )"));
- ut.clear();
- BOOST_TEST(test_attr("1.23 4.56", *double_, ut, space) &&
- ut.which() == utree_type::list_type && check(ut, "( 1.23 4.56 )"));
- }
-
- // lists
- {
- utree ut;
- BOOST_TEST(test_attr("x,y", char_ % ',', ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"x\" \"y\" )"));
- ut.clear();
- BOOST_TEST(test_attr("123,456", int_ % ',', ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 123 456 )"));
- ut.clear();
- BOOST_TEST(test_attr("1.23,4.56", double_ % ',', ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 1.23 4.56 )"));
-
- rule<char const*, std::vector<char>()> r1 = char_ % ',';
- ut.clear();
- BOOST_TEST(test_attr("x,y", r1, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"x\" \"y\" )"));
-
- rule<char const*, std::vector<int>()> r2 = int_ % ',';
- ut.clear();
- BOOST_TEST(test_attr("123,456", r2, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 123 456 )"));
-
- rule<char const*, std::vector<double>()> r3 = double_ % ',';
- ut.clear();
- BOOST_TEST(test_attr("1.23,4.56", r3, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 1.23 4.56 )"));
-
- rule<char const*, utree()> r4 = double_ % ',';
- ut.clear();
- BOOST_TEST(test_attr("1.23,4.56", r4, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 1.23 4.56 )"));
- }
-
- // alternatives
- {
- typedef real_parser<double, strict_real_policies<double> >
- strict_double_type;
- strict_double_type const strict_double = strict_double_type();
-
- utree ut;
- BOOST_TEST(test_attr("10", strict_double | int_, ut) &&
- ut.which() == utree_type::int_type && check(ut, "10"));
- ut.clear();
- BOOST_TEST(test_attr("10.2", strict_double | int_, ut) &&
- ut.which() == utree_type::double_type && check(ut, "10.2"));
-
- rule<char const*, boost::variant<int, double>()> r1 = strict_double | int_;
- ut.clear();
- BOOST_TEST(test_attr("10", r1, ut) &&
- ut.which() == utree_type::int_type && check(ut, "10"));
- ut.clear();
- BOOST_TEST(test_attr("10.2", r1, ut) &&
- ut.which() == utree_type::double_type && check(ut, "10.2"));
-
- rule<char const*, utree()> r2 = strict_double | int_;
- ut.clear();
- BOOST_TEST(test_attr("10", r2, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 10 )"));
- ut.clear();
- BOOST_TEST(test_attr("10.2", r2, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 10.2 )"));
- }
-
- // optionals
- {
- utree ut;
- BOOST_TEST(test_attr("x", -char_, ut) &&
- ut.which() == utree_type::string_type && check(ut, "\"x\""));
- ut.clear();
- BOOST_TEST(test_attr("", -char_, ut) &&
- ut.which() == utree_type::uninitialized_type &&
- check(ut, "<uninitialized>"));
- }
-
- // as_string
- {
- using boost::spirit::qi::as_string;
-
- utree ut;
- BOOST_TEST(test_attr("xy", as_string[char_ >> char_], ut) &&
- ut.which() == utree_type::string_type && check(ut, "\"xy\""));
- ut.clear();
-
- BOOST_TEST(test_attr("ab1.2", as_string[*~digit] >> double_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"ab\" 1.2 )"));
- ut.clear();
-
- BOOST_TEST(test_attr("xy", as_string[*char_], ut) &&
- ut.which() == utree_type::string_type && check(ut, "\"xy\""));
- ut.clear();
-
- BOOST_TEST(test_attr("x,y", as_string[char_ >> ',' >> char_], ut) &&
- ut.which() == utree_type::string_type && check(ut, "\"xy\""));
- ut.clear();
-
- BOOST_TEST(test_attr("x,y", char_ >> ',' >> char_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"x\" \"y\" )"));
- ut.clear();
-
- BOOST_TEST(test_attr("a,b1.2", as_string[~digit % ','] >> double_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"ab\" 1.2 )"));
- ut.clear();
-
- BOOST_TEST(test_attr("a,b1.2", ~digit % ',' >> double_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"a\" \"b\" 1.2 )"));
- ut.clear();
- }
-
- // as
- {
- typedef as<std::string> as_string_type;
- as_string_type const as_string = as_string_type();
-
- typedef as<utf8_symbol_type> as_symbol_type;
- as_symbol_type const as_symbol = as_symbol_type();
-
- utree ut;
- BOOST_TEST(test_attr("xy", as_string[char_ >> char_], ut) &&
- ut.which() == utree_type::string_type && check(ut, "\"xy\""));
- ut.clear();
-
- BOOST_TEST(test_attr("ab1.2", as_string[*~digit] >> double_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"ab\" 1.2 )"));
- ut.clear();
-
- BOOST_TEST(test_attr("xy", as_string[*char_], ut) &&
- ut.which() == utree_type::string_type && check(ut, "\"xy\""));
- ut.clear();
-
- BOOST_TEST(test_attr("x,y", as_string[char_ >> ',' >> char_], ut) &&
- ut.which() == utree_type::string_type && check(ut, "\"xy\""));
- ut.clear();
-
- BOOST_TEST(test_attr("x,y", char_ >> ',' >> char_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"x\" \"y\" )"));
- ut.clear();
-
- BOOST_TEST(test_attr("a,b1.2", as_string[~digit % ','] >> double_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"ab\" 1.2 )"));
- ut.clear();
-
- BOOST_TEST(test_attr("a,b1.2", ~digit % ',' >> double_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( \"a\" \"b\" 1.2 )"));
- ut.clear();
-
- BOOST_TEST(test_attr("xy", as_symbol[char_ >> char_], ut) &&
- ut.which() == utree_type::symbol_type && check(ut, "xy"));
- ut.clear();
-
- BOOST_TEST(test_attr("ab1.2", as_symbol[*~digit] >> double_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( ab 1.2 )"));
- ut.clear();
-
- BOOST_TEST(test_attr("xy", as_symbol[*char_], ut) &&
- ut.which() == utree_type::symbol_type && check(ut, "xy"));
- ut.clear();
-
- BOOST_TEST(test_attr("x,y", as_symbol[char_ >> ',' >> char_], ut) &&
- ut.which() == utree_type::symbol_type && check(ut, "xy"));
- ut.clear();
- BOOST_TEST(test_attr("a,b1.2", as_symbol[~digit % ','] >> double_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( ab 1.2 )"));
- ut.clear();
- }
-
- // subtrees
- {
- // -(+int_) is forcing a subtree
- utree ut;
- BOOST_TEST(test_attr("1 2", int_ >> ' ' >> -(+int_), ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 1 2 )"));
- ut.clear();
-
- BOOST_TEST(test_attr("1 2", int_ >> ' ' >> *int_, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 1 2 )"));
- ut.clear();
-
- rule<char const*, std::vector<int>()> r1 = int_ % ',';
- BOOST_TEST(test_attr("1 2,3", int_ >> ' ' >> r1, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 1 2 3 )"));
- ut.clear();
-
- BOOST_TEST(test_attr("1,2 2,3", r1 >> ' ' >> r1, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 1 2 2 3 )"));
- ut.clear();
-
- rule<char const*, utree()> r2 = int_ % ',';
- BOOST_TEST(test_attr("1 2,3", int_ >> ' ' >> r2, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( 1 ( 2 3 ) )"));
- ut.clear();
-
- BOOST_TEST(test_attr("1,2 2,3", r2 >> ' ' >> r2, ut) &&
- ut.which() == utree_type::list_type && check(ut, "( ( 1 2 ) ( 2 3 ) )"));
- ut.clear();
- }
-
- return boost::report_errors();
-}

Copied: branches/release/libs/spirit/test/qi/utree1.cpp (from r67494, /trunk/libs/spirit/test/qi/utree1.cpp)
==============================================================================
--- /trunk/libs/spirit/test/qi/utree1.cpp (original)
+++ branches/release/libs/spirit/test/qi/utree1.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -134,8 +134,55 @@
 
         BOOST_TEST(test_attr("0.5foo5", r3, ut) &&
             ut.which() == utree_type::list_type && check(ut, "( 0.5 \"foo\" 5 )"));
+ }
+
+ {
+ utree ut;
+
+ rule<char const*, utree()> r1 = char_;
+ rule<char const*, utree::list_type()> r2 = double_;
+ rule<char const*, utree::list_type()> r3 = char_;
+
+ BOOST_TEST(test_attr("a25.5b", r1 >> r2 >> r3, ut));
+ BOOST_TEST(ut.which() == utree_type::list_type);
+ BOOST_TEST(check(ut, "( \"a\" ( 25.5 ) ( \"b\" ) )"));
+ ut.clear();
+
+ BOOST_TEST(test_attr("a25.5b", r3 >> r2 >> r1, ut));
+ BOOST_TEST(ut.which() == utree_type::list_type);
+ BOOST_TEST(check(ut, "( ( \"a\" ) ( 25.5 ) \"b\" )"));
+ ut.clear();
+
+ BOOST_TEST(test_attr("a25.5b", char_ >> r2 >> r3, ut));
+ BOOST_TEST(ut.which() == utree_type::list_type);
+ BOOST_TEST(check(ut, "( \"a\" ( 25.5 ) ( \"b\" ) )"));
+ ut.clear();
+
+ BOOST_TEST(test_attr("a25.5b", r3 >> r2 >> char_, ut));
+ BOOST_TEST(ut.which() == utree_type::list_type);
+ BOOST_TEST(check(ut, "( ( \"a\" ) ( 25.5 ) \"b\" )"));
         ut.clear();
+
+ BOOST_TEST(test_attr("a25.5b", r1 > r2 >> r3, ut));
+ BOOST_TEST(ut.which() == utree_type::list_type);
+ BOOST_TEST(check(ut, "( \"a\" ( ( 25.5 ) ( \"b\" ) ) )"));
+ ut.clear();
+
+ BOOST_TEST(test_attr("a25.5b", r3 >> r2 > r1, ut));
+ BOOST_TEST(ut.which() == utree_type::list_type);
+ BOOST_TEST(check(ut, "( ( ( \"a\" ) ( 25.5 ) ) \"b\" )"));
+ ut.clear();
+
+ BOOST_TEST(test_attr("a25.5b", char_ > r2 >> r3, ut));
+ BOOST_TEST(ut.which() == utree_type::list_type);
+ BOOST_TEST(check(ut, "( \"a\" ( ( 25.5 ) ( \"b\" ) ) )"));
+ ut.clear();
+
+ BOOST_TEST(test_attr("a25.5b", r3 >> r2 > char_, ut));
+ BOOST_TEST(ut.which() == utree_type::list_type);
+ BOOST_TEST(check(ut, "( ( ( \"a\" ) ( 25.5 ) ) \"b\" )"));
     }
 
     return boost::report_errors();
 }
+

Deleted: branches/release/libs/spirit/test/support/multi_pass_regression001.cpp
==============================================================================
--- branches/release/libs/spirit/test/support/multi_pass_regression001.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,26 +0,0 @@
-// Copyright (c) 2010 Chris Hoeppler
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// This code below failed to compile with MSVC starting with Boost V1.42
-
-#include <vector>
-#include <boost/spirit/include/classic_position_iterator.hpp>
-#include <boost/spirit/include/qi.hpp>
-
-namespace char_enc = boost::spirit::ascii;
-namespace qi = boost::spirit::qi;
-
-int main()
-{
- typedef std::vector<char> file_storage;
- typedef boost::spirit::classic::position_iterator<
- file_storage::const_iterator> iterator_type;
-
- qi::rule<iterator_type, std::string(), qi::blank_type> top =
- qi::lexeme[+char_enc::alpha];
-
- return 0;
-}
-

Deleted: branches/release/libs/spirit/test/support/multi_pass_regression002.cpp
==============================================================================
--- branches/release/libs/spirit/test/support/multi_pass_regression002.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,107 +0,0 @@
-// Copyright (c) 2010 Larry Evans
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//Purpose:
-// Demonstrate error in non-classic multi_pass iterator compilation.
-//
-
-#include <boost/spirit/home/qi.hpp>
-#include <boost/spirit/home/support.hpp>
-#include <boost/spirit/home/support/multi_pass.hpp>
-#include <boost/spirit/home/support/iterators/detail/functor_input_policy.hpp>
-
-#include <fstream>
-
-//[iterate_a2m:
-// copied from:
-// http://www.boost.org/doc/libs/1_41_0/libs/spirit/doc/html/spirit/support/multi_pass.html
-
-// define the function object
-template<typename CharT=char>
-class istreambuf_functor
-{
-public:
- typedef
- std::istreambuf_iterator<CharT>
- buf_iterator_type;
- typedef
- typename buf_iterator_type::int_type
- result_type;
- static
- result_type
- eof;
-
- istreambuf_functor(void)
- : current_chr(eof)
- {}
-
- istreambuf_functor(std::ifstream& input)
- : my_first(input)
- , current_chr(eof)
- {}
-
- result_type operator()()
- {
- buf_iterator_type last;
- if (my_first == last)
- {
- return eof;
- }
- current_chr=*my_first;
- ++my_first;
- return current_chr;
- }
-
-private:
- buf_iterator_type my_first;
- result_type current_chr;
-};
-
-template<typename CharT>
- typename istreambuf_functor<CharT>::result_type
- istreambuf_functor<CharT>::
-eof
-( istreambuf_functor<CharT>::buf_iterator_type::traits_type::eof()
-)
-;
-
-//]iterate_a2m:
-
-typedef istreambuf_functor<char> base_iterator_type;
-
-typedef
- boost::spirit::multi_pass
- < base_iterator_type
- , boost::spirit::iterator_policies::default_policy
- < boost::spirit::iterator_policies::first_owner
- , boost::spirit::iterator_policies::no_check
- , boost::spirit::iterator_policies::functor_input
- , boost::spirit::iterator_policies::split_std_deque
- >
- >
-chr_iterator_type;
-
-// ======================================================================
-// Main
-int main(int argc, char** argv)
-{
- std::ifstream in("multi_pass.txt");
-
- unsigned num_toks=0;
- unsigned const max_toks=10;
-
- base_iterator_type base_first(in);
- chr_iterator_type chr_first(base_first);
- chr_iterator_type chr_last;
- for
- (
- ; (chr_first != chr_last && ++num_toks < max_toks)
- ; ++chr_first
- )
- {
- std::cout<<":num_toks="<<num_toks<<":chr="<<*chr_first<<"\n";
- }
- return 0;
-}

Deleted: branches/release/libs/spirit/test/support/multi_pass_regression003.cpp
==============================================================================
--- branches/release/libs/spirit/test/support/multi_pass_regression003.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,61 +0,0 @@
-// Copyright (c) 2010 Peter Schueller
-// Copyright (c) 2001-2010 Hartmut Kaiser
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <vector>
-#include <istream>
-#include <sstream>
-#include <iostream>
-
-#include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/include/support_multi_pass.hpp>
-
-namespace qi = boost::spirit::qi;
-namespace ascii = boost::spirit::ascii;
-
-std::vector<double> parse(std::istream& input)
-{
- // iterate over stream input
- typedef std::istreambuf_iterator<char> base_iterator_type;
- base_iterator_type in_begin(input);
-
- // convert input iterator to forward iterator, usable by spirit parser
- typedef boost::spirit::multi_pass<base_iterator_type> forward_iterator_type;
- forward_iterator_type fwd_begin = boost::spirit::make_default_multi_pass(in_begin);
- forward_iterator_type fwd_end;
-
- // prepare output
- std::vector<double> output;
-
- // parse
- bool r = qi::phrase_parse(
- fwd_begin, fwd_end, // iterators over input
- qi::double_ >> *(',' >> qi::double_) >> qi::eoi, // recognize list of doubles
- ascii::space | '#' >> *(ascii::char_ - qi::eol) >> qi::eol, // comment skipper
- output); // doubles are stored into this object
-
- // error detection
- if( !r || fwd_begin != fwd_end )
- throw std::runtime_error("parse error");
-
- // return result
- return output;
-}
-
-int main()
-{
- try {
- std::stringstream str("1.0,2.0\n");
- std::vector<double> values = parse(str);
- BOOST_TEST(values.size() == 2 && values[0] == 1.0 && values[1] == 2.0);
- }
- catch(std::exception const&) {
- BOOST_TEST(false);
- }
- return boost::report_errors();
-}

Deleted: branches/release/libs/spirit/test/support/utree_test.cpp
==============================================================================
--- branches/release/libs/spirit/test/support/utree_test.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
+++ (empty file)
@@ -1,397 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
- Copyright (c) 2001-2010 Hartmut Kaiser
- Copyright (c) 2010 Bryce Lelbach
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-
-#include <boost/config/warning_disable.hpp>
-#include <boost/detail/lightweight_test.hpp>
-
-#include <boost/spirit/include/support_utree.hpp>
-
-#include <iostream>
-#include <sstream>
-#include <cstdlib>
-
-inline bool check(boost::spirit::utree const& val, std::string expected)
-{
- std::stringstream s;
- s << val;
- if (s.str() == expected + " ")
- return true;
-
- std::cerr << "got result: " << s.str()
- << ", expected: " << expected << std::endl;
- return false;
-}
-
-struct one_two_three
-{
- boost::spirit::utree operator()(boost::spirit::scope) const
- {
- return boost::spirit::utree(123);
- }
-};
-
-int main()
-{
- using boost::spirit::utree;
- using boost::spirit::utf8_symbol_type;
- using boost::spirit::binary_string_type;
-
- {
- // test the size
- std::cout << "size of utree is: "
- << sizeof(utree) << " bytes" << std::endl;
- BOOST_TEST(sizeof(utree) == sizeof(void*[4]));
- }
-
- {
- utree val(utree::nil);
- BOOST_TEST(check(val, "<nil>"));
- }
-
- {
- utree val(utree::list);
- BOOST_TEST(check(val, "( )"));
- }
-
- {
- utree val(true);
- BOOST_TEST(check(val, "true"));
- }
-
- {
- utree val(123);
- BOOST_TEST(check(val, "123"));
- }
-
- {
- // single element string
- utree val('x');
- BOOST_TEST(check(val, "\"x\""));
-
- // empty string
- utree val1("");
- BOOST_TEST(check(val1, "\"\""));
- }
-
- {
- utree val(123.456);
- BOOST_TEST(check(val, "123.456"));
- }
-
- { // strings
- utree val("Hello, World");
- BOOST_TEST(check(val, "\"Hello, World\""));
- utree val2;
- val2 = val;
- BOOST_TEST(check(val2, "\"Hello, World\""));
- utree val3("Hello, World. Chuckie is back!!!");
- val = val3;
- BOOST_TEST(check(val, "\"Hello, World. Chuckie is back!!!\""));
-
- utree val4("Apple");
- utree val5("Apple");
- BOOST_TEST(val4 == val5);
-
- utree val6("ApplePie");
- BOOST_TEST(val4 < val6);
- }
-
- { // symbols
- utree val(utf8_symbol_type("Hello, World"));
- BOOST_TEST(check(val, "Hello, World"));
- utree val2;
- val2 = val;
- BOOST_TEST(check(val2, "Hello, World"));
- utree val3(utf8_symbol_type("Hello, World. Chuckie is back!!!"));
- val = val3;
- BOOST_TEST(check(val, "Hello, World. Chuckie is back!!!"));
-
- utree val4(utf8_symbol_type("Apple"));
- utree val5(utf8_symbol_type("Apple"));
- BOOST_TEST(val4 == val5);
-
- utree val6(utf8_symbol_type("ApplePie"));
- BOOST_TEST(val4 < val6);
- }
-
- { // binary_strings
- utree val(binary_string_type("\xDE#\xAD"));
- BOOST_TEST(check(val, "#de23ad#" /* FIXME?: "#\xDE#\xAD#" */));
- utree val2;
- val2 = val;
- BOOST_TEST(check(val2, "#de23ad#" /* FIXME?: "#\xDE#\xAD#" */));
- utree val3(binary_string_type("\xDE\xAD\xBE\xEF"));
- val = val3;
- BOOST_TEST(check(val, "#deadbeef#" /* FIXME?: "#\xDE\xAD\xBE\xEF#" */));
-
- utree val4(binary_string_type("\x01"));
- utree val5(binary_string_type("\x01"));
- BOOST_TEST(val4 == val5);
-
- utree val6(binary_string_type("\x01\x02"));
- BOOST_TEST(val4 < val6);
- }
-
- {
- utree val;
- val.push_back(123);
- val.push_back("Chuckie");
- BOOST_TEST(val.size() == 2);
- utree val2;
- val2.push_back(123.456);
- val2.push_back("Mah Doggie");
- val.push_back(val2);
- BOOST_TEST(val.size() == 3);
- BOOST_TEST(check(val, "( 123 \"Chuckie\" ( 123.456 \"Mah Doggie\" ) )"));
- BOOST_TEST(check(val.front(), "123"));
-
- utree val3(utree::nil);
- val3.swap(val);
- BOOST_TEST(val3.size() == 3);
- BOOST_TEST(check(val, "<nil>"));
- val3.swap(val);
- BOOST_TEST(check(val, "( 123 \"Chuckie\" ( 123.456 \"Mah Doggie\" ) )"));
- val.push_back("another string");
- BOOST_TEST(val.size() == 4);
- BOOST_TEST(check(val, "( 123 \"Chuckie\" ( 123.456 \"Mah Doggie\" ) \"another string\" )"));
- val.pop_front();
- BOOST_TEST(check(val, "( \"Chuckie\" ( 123.456 \"Mah Doggie\" ) \"another string\" )"));
- utree::iterator i = val.begin();
- ++++i;
- val.insert(i, "Right in the middle");
- BOOST_TEST(val.size() == 4);
- BOOST_TEST(check(val, "( \"Chuckie\" ( 123.456 \"Mah Doggie\" ) \"Right in the middle\" \"another string\" )"));
- val.pop_back();
- BOOST_TEST(check(val, "( \"Chuckie\" ( 123.456 \"Mah Doggie\" ) \"Right in the middle\" )"));
- BOOST_TEST(val.size() == 3);
- utree::iterator it = val.end(); --it;
- val.erase(it);
- BOOST_TEST(check(val, "( \"Chuckie\" ( 123.456 \"Mah Doggie\" ) )"));
- BOOST_TEST(val.size() == 2);
-
- val.insert(val.begin(), val2.begin(), val2.end());
- BOOST_TEST(check(val, "( 123.456 \"Mah Doggie\" \"Chuckie\" ( 123.456 \"Mah Doggie\" ) )"));
- BOOST_TEST(val.size() == 4);
- }
-
- {
- utree val;
- val.insert(val.end(), 123);
- val.insert(val.end(), "Mia");
- val.insert(val.end(), "Chuckie");
- val.insert(val.end(), "Poly");
- val.insert(val.end(), "Mochi");
- BOOST_TEST(check(val, "( 123 \"Mia\" \"Chuckie\" \"Poly\" \"Mochi\" )"));
- }
-
- {
- utree a(utree::nil), b(utree::nil);
- BOOST_TEST(a == b);
- a = 123;
- BOOST_TEST(a != b);
- b = 123;
- BOOST_TEST(a == b);
- a = 100.00;
- BOOST_TEST(a < b);
-
- b = a = utree(utree::uninitialized);
- BOOST_TEST(a == b);
- a.push_back(1);
- a.push_back("two");
- a.push_back(3.0);
- b.push_back(1);
- b.push_back("two");
- b.push_back(3.0);
- BOOST_TEST(a == b);
- b.push_back(4);
- BOOST_TEST(a != b);
- BOOST_TEST(a < b);
- }
-
- {
- utree a(utree::nil);
- a.push_back(1);
- a.push_back(2);
- a.push_back(3);
- a.push_back(4);
- a.push_back(5);
- a.push_back(6);
- a.push_back(7);
- a.push_back(8);
- a.push_back(9);
- a.push_back(10);
- a.push_back(11);
- a.push_back(12);
-
- BOOST_TEST(a[0] == utree(1));
- BOOST_TEST(a[1] == utree(2));
- BOOST_TEST(a[2] == utree(3));
- BOOST_TEST(a[3] == utree(4));
- BOOST_TEST(a[4] == utree(5));
- BOOST_TEST(a[5] == utree(6));
- BOOST_TEST(a[6] == utree(7));
- BOOST_TEST(a[7] == utree(8));
- BOOST_TEST(a[8] == utree(9));
- BOOST_TEST(a[9] == utree(10));
- BOOST_TEST(a[10] == utree(11));
- BOOST_TEST(a[11] == utree(12));
- }
-
- {
- // test empty list
- utree a;
- a.push_back(1);
- a.pop_front();
- BOOST_TEST(check(a, "( )"));
-
- // the other way around
- utree b;
- b.push_front(1);
- b.pop_back();
- BOOST_TEST(check(b, "( )"));
- }
-
- { // test references
- utree val(123);
- utree ref(boost::ref(val));
- BOOST_TEST(check(ref, "123"));
- BOOST_TEST(ref == utree(123));
-
- val.clear();
- val.push_back(1);
- val.push_back(2);
- val.push_back(3);
- val.push_back(4);
- BOOST_TEST(check(ref, "( 1 2 3 4 )"));
- BOOST_TEST(ref[0] == utree(1));
- BOOST_TEST(ref[1] == utree(2));
- BOOST_TEST(ref[2] == utree(3));
- BOOST_TEST(ref[3] == utree(4));
- }
-
- { // put it in an array
-
- utree vals[] = {
- utree(123),
- utree("Hello, World"),
- utree(123.456)
- };
-
- BOOST_TEST(check(vals[0], "123"));
- BOOST_TEST(check(vals[1], "\"Hello, World\""));
- BOOST_TEST(check(vals[2], "123.456"));
- }
-
- { // operators
-
- BOOST_TEST((utree(true) && utree(true)) == utree(true));
- BOOST_TEST((utree(true) || utree(false)) == utree(true));
- BOOST_TEST(!utree(true) == utree(false));
-
- BOOST_TEST((utree(456) + utree(123)) == utree(456 + 123));
- BOOST_TEST((utree(456) + utree(123.456)) == utree(456 + 123.456));
- BOOST_TEST((utree(456) - utree(123)) == utree(456 - 123));
- BOOST_TEST((utree(456) - utree(123.456)) == utree(456 - 123.456));
- BOOST_TEST((utree(456) * utree(123)) == utree(456 * 123));
- BOOST_TEST((utree(456) * utree(123.456)) == utree(456 * 123.456));
- BOOST_TEST((utree(456) / utree(123)) == utree(456 / 123));
- BOOST_TEST((utree(456) / utree(123.456)) == utree(456 / 123.456));
- BOOST_TEST((utree(456) % utree(123)) == utree(456 % 123));
- BOOST_TEST(-utree(456) == utree(-456));
-
- BOOST_TEST((utree(456) & utree(123)) == utree(456 & 123));
- BOOST_TEST((utree(456) | utree(123)) == utree(456 | 123));
- BOOST_TEST((utree(456) ^ utree(123)) == utree(456 ^ 123));
- BOOST_TEST((utree(456) << utree(3)) == utree(456 << 3));
- BOOST_TEST((utree(456) >> utree(2)) == utree(456 >> 2));
- BOOST_TEST(~utree(456) == utree(~456));
- }
-
- { // test reference iterator
- utree val;
- val.push_back(1);
- val.push_back(2);
- val.push_back(3);
- val.push_back(4);
- BOOST_TEST(check(val, "( 1 2 3 4 )"));
-
- utree::ref_iterator b = val.ref_begin();
- utree::ref_iterator e = val.ref_end();
-
- utree ref(boost::make_iterator_range(b, e));
- BOOST_TEST(ref[0] == utree(1));
- BOOST_TEST(ref[1] == utree(2));
- BOOST_TEST(ref[2] == utree(3));
- BOOST_TEST(ref[3] == utree(4));
- BOOST_TEST(check(ref, "( 1 2 3 4 )"));
- }
-
- {
- // check the tag
- utree x;
- x.tag(123);
- BOOST_TEST(x.tag() == 123);
- }
-
- {
- // test functions
- using boost::spirit::stored_function;
- using boost::spirit::scope;
-
- utree f = stored_function<one_two_three>();
- f.eval(scope());
- }
-
- {
- // shallow ranges
- using boost::spirit::shallow;
-
- utree val;
- val.push_back(1);
- val.push_back(2);
- val.push_back(3);
- val.push_back(4);
-
- utree::iterator i = val.begin(); ++i;
- utree alias(utree::range(i, val.end()), shallow);
-
- BOOST_TEST(check(alias, "( 2 3 4 )"));
- BOOST_TEST(alias.size() == 3);
- BOOST_TEST(alias.front() == 2);
- BOOST_TEST(alias.back() == 4);
- BOOST_TEST(!alias.empty());
- BOOST_TEST(alias[1] == 3);
- }
-
- {
- // shallow string ranges
- using boost::spirit::utf8_string_range_type;
- using boost::spirit::shallow;
-
- char const* s = "Hello, World";
- utree val(utf8_string_range_type(s, s + strlen(s)), shallow);
- BOOST_TEST(check(val, "\"Hello, World\""));
-
- utf8_string_range_type r = val.get<utf8_string_range_type>();
- utf8_string_range_type pf(r.begin()+1, r.end()-1);
- val = utree(pf, shallow);
- BOOST_TEST(check(val, "\"ello, Worl\""));
- }
-
- {
- // any pointer
- using boost::spirit::any_ptr;
-
- int n = 123;
- utree up = any_ptr(&n);
- BOOST_TEST(*up.get<int*>() == 123);
- }
-
- return boost::report_errors();
-}

Modified: branches/release/tools/bcp/add_path.cpp
==============================================================================
--- branches/release/tools/bcp/add_path.cpp (original)
+++ branches/release/tools/bcp/add_path.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -68,7 +68,7 @@
       // we need to convert *i back into
       // a relative path, what follows is a hack:
       //
- std::string s(i->string());
+ std::string s(i->path().string());
       if(m_boost_path.string().size())
          s.erase(0, m_boost_path.string().size() + 1);
       fs::path np = s;

Modified: branches/release/tools/bcp/bcp.hpp
==============================================================================
--- branches/release/tools/bcp/bcp.hpp (original)
+++ branches/release/tools/bcp/bcp.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -9,6 +9,12 @@
 
 #include <boost/shared_ptr.hpp>
 
+#if defined(BOOST_FILESYSTEM_VERSION) && (BOOST_FILESYSTEM_VERSION != 3)
+# error "This library must be built with Boost.Filesystem version 3"
+#else
+#define BOOST_FILESYSTEM_VERSION 3
+#endif
+
 class bcp_application;
 typedef boost::shared_ptr<bcp_application> pbcp_application;
 

Modified: branches/release/tools/bcp/bcp_imp.cpp
==============================================================================
--- branches/release/tools/bcp/bcp_imp.cpp (original)
+++ branches/release/tools/bcp/bcp_imp.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -81,7 +81,7 @@
 void bcp_implementation::set_boost_path(const char* p)
 {
    // Hack to strip trailing slashes from the path
- m_boost_path = (fs::path(p, fs::native) / "boost").parent_path();
+ m_boost_path = (fs::path(p) / "boost").parent_path();
    fs::path check = m_boost_path / "boost" / "version.hpp";
    if(!fs::exists(check))
    {
@@ -94,7 +94,7 @@
 
 void bcp_implementation::set_destination(const char* p)
 {
- m_dest_path = fs::path(p, fs::native);
+ m_dest_path = fs::path(p);
 }
 
 void bcp_implementation::add_module(const char* p)
@@ -140,7 +140,7 @@
    if(!m_list_mode && !m_license_mode && !fs::exists(m_dest_path))
    {
       std::string msg("Destination path does not exist: ");
- msg.append(m_dest_path.native_file_string());
+ msg.append(m_dest_path.string());
       std::runtime_error e(msg);
       boost::throw_exception(e);
    }
@@ -190,15 +190,8 @@
       //
       fs::path module;
       fs::path exmodule;
- try{
- module = fs::path(*i);
- exmodule = fs::path(*i + ".hpp");
- }
- catch(...)
- {
- module = fs::path(*i, fs::native);
- exmodule = fs::path(*i + ".hpp", fs::native);
- }
+ module = fs::path(*i);
+ exmodule = fs::path(*i + ".hpp");
       
       if(m_scan_mode)
       {

Modified: branches/release/tools/bcp/copy_path.cpp
==============================================================================
--- branches/release/tools/bcp/copy_path.cpp (original)
+++ branches/release/tools/bcp/copy_path.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -63,7 +63,7 @@
       static std::vector<char> v1, v2;
       v1.clear();
       v2.clear();
- std::ifstream is((m_boost_path / p).native_file_string().c_str());
+ std::ifstream is((m_boost_path / p).string().c_str());
       std::copy(std::istreambuf_iterator<char>(is), std::istreambuf_iterator<char>(), std::back_inserter(v1));
 
       static boost::regex libname_matcher;
@@ -78,9 +78,9 @@
 
       std::ofstream os;
       if(m_unix_lines)
- os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::binary | std::ios_base::out);
+ os.open((m_dest_path / p).string().c_str(), std::ios_base::binary | std::ios_base::out);
       else
- os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::out);
+ os.open((m_dest_path / p).string().c_str(), std::ios_base::out);
       os.write(&*v1.begin(), v1.size());
       os.close();
    }
@@ -89,7 +89,7 @@
       static std::vector<char> v1, v2;
       v1.clear();
       v2.clear();
- std::ifstream is((m_boost_path / p).native_file_string().c_str());
+ std::ifstream is((m_boost_path / p).string().c_str());
       std::copy(std::istreambuf_iterator<char>(is), std::istreambuf_iterator<char>(), std::back_inserter(v1));
 
       static boost::regex libname_matcher;
@@ -111,9 +111,9 @@
 
       std::ofstream os;
       if(m_unix_lines)
- os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::binary | std::ios_base::out);
+ os.open((m_dest_path / p).string().c_str(), std::ios_base::binary | std::ios_base::out);
       else
- os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::out);
+ os.open((m_dest_path / p).string().c_str(), std::ios_base::out);
       os.write(&*v1.begin(), v1.size());
       os.close();
    }
@@ -127,7 +127,7 @@
       static std::vector<char> v1, v2;
       v1.clear();
       v2.clear();
- std::ifstream is((m_boost_path / p).native_file_string().c_str());
+ std::ifstream is((m_boost_path / p).string().c_str());
       std::copy(std::istreambuf_iterator<char>(is), std::istreambuf_iterator<char>(), std::back_inserter(v1));
 
       static const boost::regex namespace_matcher(
@@ -202,20 +202,20 @@
 
       std::ofstream os;
       if(m_unix_lines)
- os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::binary | std::ios_base::out);
+ os.open((m_dest_path / p).string().c_str(), std::ios_base::binary | std::ios_base::out);
       else
- os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::out);
+ os.open((m_dest_path / p).string().c_str(), std::ios_base::out);
       if(v1.size())
          os.write(&*v1.begin(), v1.size());
       os.close();
    }
    else if(m_unix_lines && !is_binary_file(p))
    {
- std::ifstream is((m_boost_path / p).native_file_string().c_str());
+ std::ifstream is((m_boost_path / p).string().c_str());
       std::istreambuf_iterator<char> isi(is);
       std::istreambuf_iterator<char> end;
 
- std::ofstream os((m_dest_path / p).native_file_string().c_str(), std::ios_base::binary | std::ios_base::out);
+ std::ofstream os((m_dest_path / p).string().c_str(), std::ios_base::binary | std::ios_base::out);
       std::ostreambuf_iterator<char> osi(os);
 
       std::copy(isi, end, osi);

Modified: branches/release/tools/bcp/file_types.cpp
==============================================================================
--- branches/release/tools/bcp/file_types.cpp (original)
+++ branches/release/tools/bcp/file_types.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -23,7 +23,7 @@
       ")",
       boost::regex::perl | boost::regex::icase
       );
- return boost::regex_match(p.filename(), e);
+ return boost::regex_match(p.filename().string(), e);
 }
 
 bool bcp_implementation::is_html_file(const fs::path& p)
@@ -34,7 +34,7 @@
          "html?|css"
       ")"
       );
- return boost::regex_match(p.filename(), e);
+ return boost::regex_match(p.filename().string(), e);
 }
 
 bool bcp_implementation::is_binary_file(const fs::path& p)
@@ -52,7 +52,7 @@
       "|"
       "(Jamfile|makefile|configure)",
       boost::regex::perl | boost::regex::icase);
- return !boost::regex_match(p.leaf(), e);
+ return !boost::regex_match(p.leaf().string(), e);
 
 }
 
@@ -67,6 +67,6 @@
       "(Jamfile|Jamroot)\\.?",
       boost::regex::perl | boost::regex::icase
       );
- return boost::regex_match(p.filename(), e);
+ return boost::regex_match(p.filename().string(), e);
 }
 

Modified: branches/release/tools/bcp/fileview.cpp
==============================================================================
--- branches/release/tools/bcp/fileview.cpp (original)
+++ branches/release/tools/bcp/fileview.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -57,11 +57,11 @@
 void fileview::open(const boost::filesystem::path& p)
 {
    cow();
- std::ifstream is(p.native_file_string().c_str());
+ std::ifstream is(p.string().c_str());
    if(!is)
    {
       std::string msg("Bad file name: ");
- msg += p.native_file_string();
+ msg += p.string();
       std::runtime_error e(msg);
       boost::throw_exception(e);
    }

Modified: branches/release/tools/bcp/fileview.hpp
==============================================================================
--- branches/release/tools/bcp/fileview.hpp (original)
+++ branches/release/tools/bcp/fileview.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -7,6 +7,12 @@
  *
  */
 
+#if defined(BOOST_FILESYSTEM_VERSION) && (BOOST_FILESYSTEM_VERSION != 3)
+# error "This library must be built with Boost.Filesystem version 3"
+#else
+#define BOOST_FILESYSTEM_VERSION 3
+#endif
+
 #include <boost/shared_ptr.hpp>
 #include <boost/filesystem/path.hpp>
 

Modified: branches/release/tools/bcp/main.cpp
==============================================================================
--- branches/release/tools/bcp/main.cpp (original)
+++ branches/release/tools/bcp/main.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -13,9 +13,9 @@
 #include <cstring>
 #include <string>
 #include <list>
+#include "bcp.hpp"
 #include <boost/filesystem/path.hpp>
 #include <boost/version.hpp>
-#include "bcp.hpp"
 
 #ifdef BOOST_NO_STDC_NAMESPACE
 namespace std{
@@ -60,7 +60,7 @@
    // with files that already exist, if they're not portable
    // names it's too late for us to do anything about it).
    //
- boost::filesystem::path::default_name_check(filesystem_name_check);
+ /*boost::filesystem::path::default_name_check(filesystem_name_check);*/
    //
    // without arguments just show help:
    //
@@ -68,7 +68,7 @@
    {
       std::cout << "Error: insufficient arguments, don't know what to do." << std::endl;
       show_usage();
- return 0;
+ return 1;
    }
    //
    // create the application object:

Modified: branches/release/tools/bcp/output_licence_info.cpp
==============================================================================
--- branches/release/tools/bcp/output_licence_info.cpp (original)
+++ branches/release/tools/bcp/output_licence_info.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -57,7 +57,7 @@
    i = m_license_data.begin();
    j = m_license_data.end();
 
- std::ofstream os(m_dest_path.native_file_string().c_str());
+ std::ofstream os(m_dest_path.string().c_str());
    if(!os)
    {
       std::string msg("Error opening ");

Modified: branches/release/tools/bcp/scan_licence.cpp
==============================================================================
--- branches/release/tools/bcp/scan_licence.cpp (original)
+++ branches/release/tools/bcp/scan_licence.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -239,10 +239,10 @@
        // Perform the actual conversion
        if (m_bsl_convert_mode) {
           try{
- std::ofstream out((m_boost_path / p).native_file_string().c_str());
+ std::ofstream out((m_boost_path / p).string().c_str());
             if (!out) {
                std::string msg("Cannot open file for license conversion: ");
- msg += p.native_file_string();
+ msg += p.string();
                std::runtime_error e(msg);
                boost::throw_exception(e);
             }

Modified: branches/release/tools/inspect/apple_macro_check.cpp
==============================================================================
--- branches/release/tools/inspect/apple_macro_check.cpp (original)
+++ branches/release/tools/inspect/apple_macro_check.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -64,7 +64,7 @@
 
       // Only check files in the boost directory, as we can avoid including the
       // apple test headers elsewhere.
- path relative( relative_to( full_path, fs::initial_path() ), fs::no_check );
+ path relative( relative_to( full_path, fs::initial_path() ) );
       if ( relative.empty() || *relative.begin() != "boost") return;
 
       boost::sregex_iterator cur(contents.begin(), contents.end(), apple_macro_regex), end;

Modified: branches/release/tools/inspect/assert_macro_check.cpp
==============================================================================
--- branches/release/tools/inspect/assert_macro_check.cpp (original)
+++ branches/release/tools/inspect/assert_macro_check.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -70,7 +70,7 @@
       // Check files iff (a) they are in the boost directory, or (b) they
       // are in the src directory under libs.
       if (m_from_boost_root) {
- path relative( relative_to( full_path, fs::initial_path() ), fs::no_check );
+ path relative( relative_to( full_path, fs::initial_path() ) );
         path::const_iterator pbeg = relative.begin(), pend = relative.end();
         if (pbeg != std::find(pbeg, pend, "boost") &&
           !(pbeg == std::find(pbeg, pend, "libs") && pend != std::find(pbeg, pend, "src")))

Modified: branches/release/tools/inspect/build/Jamfile.v2
==============================================================================
--- branches/release/tools/inspect/build/Jamfile.v2 (original)
+++ branches/release/tools/inspect/build/Jamfile.v2 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -14,8 +14,19 @@
 
 exe inspect
     :
- inspect.cpp license_check.cpp link_check.cpp path_name_check.cpp tab_check.cpp crlf_check.cpp end_check.cpp unnamed_namespace_check.cpp ascii_check.cpp
- copyright_check.cpp minmax_check.cpp apple_macro_check.cpp assert_macro_check.cpp
+ apple_macro_check.cpp
+ ascii_check.cpp
+ assert_macro_check.cpp
+ copyright_check.cpp
+ crlf_check.cpp
+ end_check.cpp
+ inspect.cpp
+ license_check.cpp
+ link_check.cpp
+ minmax_check.cpp
+ path_name_check.cpp
+ tab_check.cpp
+ unnamed_namespace_check.cpp
     /boost//filesystem/<link>static
     /boost//regex/<link>static
     :

Modified: branches/release/tools/inspect/cvs_iterator.hpp
==============================================================================
--- branches/release/tools/inspect/cvs_iterator.hpp (original)
+++ branches/release/tools/inspect/cvs_iterator.hpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -62,7 +62,7 @@
         } while ( contents == "D" );
         if ( contents[0] == 'D' ) contents.erase( 0, 1 );
         value_path = dir_path
- / boost::filesystem::path( contents.substr( 1, contents.find( '/', 1 ) ), boost::filesystem::no_check );
+ / boost::filesystem::path( contents.substr( 1, contents.find( '/', 1 ) ) );
 
       // in case entries file is mistaken, do until value_path actually found
       } while ( !boost::filesystem::exists( value_path ) );

Modified: branches/release/tools/inspect/inspect.cpp
==============================================================================
--- branches/release/tools/inspect/inspect.cpp (original)
+++ branches/release/tools/inspect/inspect.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -145,7 +145,7 @@
   bool visit_predicate( const path & pth )
   {
     string local( boost::inspect::relative_to( pth, fs::initial_path() ) );
- string leaf( pth.leaf() );
+ string leaf( pth.leaf().string() );
     return
       // so we can inspect a checkout
       leaf != "CVS"
@@ -203,7 +203,7 @@
   bool find_signature( const path & file_path,
     const boost::inspect::string_set & signatures )
   {
- string name( file_path.leaf() );
+ string name( file_path.leaf().string() );
     if ( signatures.find( name ) == signatures.end() )
     {
       string::size_type pos( name.rfind( '.' ) );
@@ -676,13 +676,12 @@
     // may return an empty string [gps]
     string impute_library( const path & full_dir_path )
     {
- path relative( relative_to( full_dir_path, fs::initial_path() ),
- fs::no_check );
+ path relative( relative_to( full_dir_path, fs::initial_path() ) );
       if ( relative.empty() ) return "boost-root";
- string first( *relative.begin() );
+ string first( (*relative.begin()).string() );
       string second = // borland 5.61 requires op=
         ++relative.begin() == relative.end()
- ? string() : *++relative.begin();
+ ? string() : (*++relative.begin()).string();
 
       if ( first == "boost" )
         return second;

Modified: branches/release/tools/inspect/link_check.cpp
==============================================================================
--- branches/release/tools/inspect/link_check.cpp (original)
+++ branches/release/tools/inspect/link_check.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -424,7 +424,7 @@
       // url is relative source_path.branch()
       // convert to target_path, which is_complete()
       path target_path;
- try { target_path = source_path.branch_path() /= path( decoded_path, fs::no_check ); }
+ try { target_path = source_path.branch_path() /= path( decoded_path ); }
       catch ( const fs::filesystem_error & )
       {
         if(!no_link_errors) {
@@ -476,7 +476,7 @@
          && itr->first.rfind( "index.htm" ) == string::npos )
        {
          ++m_unlinked_errors;
- path full_path( fs::initial_path() / path(itr->first, fs::no_check) );
+ path full_path( fs::initial_path() / path(itr->first) );
          error( impute_library( full_path ), full_path, "Unlinked file" );
        }
      }

Modified: branches/release/tools/inspect/path_name_check.cpp
==============================================================================
--- branches/release/tools/inspect/path_name_check.cpp (original)
+++ branches/release/tools/inspect/path_name_check.cpp 2011-01-12 14:22:18 EST (Wed, 12 Jan 2011)
@@ -40,7 +40,7 @@
       string::size_type pos;
       
       // called for each file and directory, so only the leaf need be tested
- string const leaf( full_path.leaf() );
+ string const leaf( full_path.leaf().string() );
 
       // includes only allowable characters
       if ( (pos = leaf.find_first_not_of( allowable )) != string::npos )


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