Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r56628 - in branches/release: boost/spirit boost/spirit/home/karma boost/spirit/home/karma/action boost/spirit/home/karma/auxiliary boost/spirit/home/karma/binary boost/spirit/home/karma/char boost/spirit/home/karma/detail boost/spirit/home/karma/directive boost/spirit/home/karma/nonterminal boost/spirit/home/karma/nonterminal/detail boost/spirit/home/karma/numeric boost/spirit/home/karma/numeric/detail boost/spirit/home/karma/operator boost/spirit/home/karma/stream boost/spirit/home/karma/string boost/spirit/home/lex/lexer boost/spirit/home/lex/lexer/lexertl boost/spirit/home/lex/qi boost/spirit/home/qi boost/spirit/home/qi/action boost/spirit/home/qi/auxiliary boost/spirit/home/qi/binary boost/spirit/home/qi/char boost/spirit/home/qi/detail boost/spirit/home/qi/directive boost/spirit/home/qi/nonterminal boost/spirit/home/qi/nonterminal/detail boost/spirit/home/qi/numeric boost/spirit/home/qi/numeric/detail boost/spirit/home/qi/operator boost/spirit/home/qi/string boost/spirit/home/support boost/spirit/home/support/auxiliary boost/spirit/home/support/char_encoding boost/spirit/include boost/spirit/repository/home/karma/directive boost/spirit/repository/home/karma/nonterminal boost/spirit/repository/home/qi/directive boost/spirit/repository/home/qi/nonterminal libs/spirit libs/spirit/classic/doc libs/spirit/doc libs/spirit/doc/abstracts libs/spirit/doc/html libs/spirit/doc/html/images libs/spirit/doc/html/images/callouts libs/spirit/doc/html/spirit libs/spirit/doc/html/spirit/abstracts libs/spirit/doc/html/spirit/abstracts/attributes libs/spirit/doc/html/spirit/abstracts/customize libs/spirit/doc/html/spirit/abstracts/customize/store_value libs/spirit/doc/html/spirit/abstracts/indepth libs/spirit/doc/html/spirit/karma libs/spirit/doc/html/spirit/karma/performance_measurements libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance libs/spirit/doc/html/spirit/karma/quick_reference libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators 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/generator_concepts 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/quick_reference/qi_parsers 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/concepts libs/spirit/doc/html/spirit/qi/reference/directive libs/spirit/doc/html/spirit/qi/reference/numeric libs/spirit/doc/html/spirit/qi/reference/operator libs/spirit/doc/html/spirit/qi/reference/parser_concepts libs/spirit/doc/html/spirit/qi/reference/string libs/spirit/doc/html/spirit/qi/string libs/spirit/doc/html/spirit/qi/tutorials libs/spirit/doc/html/spirit/structure libs/spirit/doc/html/spirit/support libs/spirit/doc/karma libs/spirit/doc/lex libs/spirit/doc/notes libs/spirit/doc/qi libs/spirit/example/karma libs/spirit/example/lex libs/spirit/example/lex/static_lexer libs/spirit/example/qi libs/spirit/example/qi/mini_c libs/spirit/repository/doc/html libs/spirit/repository/doc/html/spirit_repository libs/spirit/repository/doc/html/spirit_repository/karma_components/directives libs/spirit/repository/doc/html/spirit_repository/karma_components/nonterminal libs/spirit/repository/doc/html/spirit_repository/qi_components/directives libs/spirit/repository/doc/html/spirit_repository/qi_components/nonterminal libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive libs/spirit/repository/test/karma libs/spirit/test libs/spirit/test/karma libs/spirit/test/lex libs/spirit/test/qi
From: hartmut.kaiser_at_[hidden]
Date: 2009-10-06 19:57:48


Author: hkaiser
Date: 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
New Revision: 56628
URL: http://svn.boost.org/trac/boost/changeset/56628

Log:
Spirit: merging from trunk
Added:
   branches/release/boost/spirit/home/karma/auxiliary/attr_cast.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/karma/auxiliary/attr_cast.hpp
   branches/release/boost/spirit/home/karma/detail/extract_from.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/karma/detail/extract_from.hpp
   branches/release/boost/spirit/home/karma/numeric/bool.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/karma/numeric/bool.hpp
   branches/release/boost/spirit/home/karma/numeric/bool_policies.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/karma/numeric/bool_policies.hpp
   branches/release/boost/spirit/home/karma/numeric/detail/bool_utils.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/karma/numeric/detail/bool_utils.hpp
   branches/release/boost/spirit/home/karma/phoenix_attributes.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/karma/phoenix_attributes.hpp
   branches/release/boost/spirit/home/qi/auxiliary/attr_cast.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/qi/auxiliary/attr_cast.hpp
   branches/release/boost/spirit/home/qi/numeric/bool.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/qi/numeric/bool.hpp
   branches/release/boost/spirit/home/qi/numeric/bool_policies.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/qi/numeric/bool_policies.hpp
   branches/release/boost/spirit/home/support/attributes_fwd.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/support/attributes_fwd.hpp
   branches/release/boost/spirit/home/support/auxiliary/
      - copied from r56617, /trunk/boost/spirit/home/support/auxiliary/
   branches/release/boost/spirit/home/support/auxiliary/attr_cast.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/support/auxiliary/attr_cast.hpp
   branches/release/boost/spirit/home/support/has_semantic_action.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/home/support/has_semantic_action.hpp
   branches/release/boost/spirit/include/karma_attr_cast.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/include/karma_attr_cast.hpp
   branches/release/boost/spirit/include/karma_bool.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/include/karma_bool.hpp
   branches/release/boost/spirit/include/karma_phoenix_attributes.hpp
      - copied unchanged from r56617, /trunk/boost/spirit/include/karma_phoenix_attributes.hpp
   branches/release/libs/spirit/doc/abstracts/attributes.qbk
      - copied unchanged from r56618, /trunk/libs/spirit/doc/abstracts/attributes.qbk
   branches/release/libs/spirit/doc/abstracts/customization_points.qbk
      - copied unchanged from r56618, /trunk/libs/spirit/doc/abstracts/customization_points.qbk
   branches/release/libs/spirit/doc/abstracts/indepth.qbk
      - copied unchanged from r56618, /trunk/libs/spirit/doc/abstracts/indepth.qbk
   branches/release/libs/spirit/doc/customization_point_template.qbk
      - copied unchanged from r56618, /trunk/libs/spirit/doc/customization_point_template.qbk
   branches/release/libs/spirit/doc/html/images/alternative.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/alternative.png
   branches/release/libs/spirit/doc/html/images/and_predicate.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/and_predicate.png
   branches/release/libs/spirit/doc/html/images/double_performance.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/double_performance.png
   branches/release/libs/spirit/doc/html/images/flowofcontrol.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/flowofcontrol.png
   branches/release/libs/spirit/doc/html/images/format_performance.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/format_performance.png
   branches/release/libs/spirit/doc/html/images/int_performance.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/int_performance.png
   branches/release/libs/spirit/doc/html/images/kleene.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/kleene.png
   branches/release/libs/spirit/doc/html/images/non-terminal.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/non-terminal.png
   branches/release/libs/spirit/doc/html/images/not_predicate.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/not_predicate.png
   branches/release/libs/spirit/doc/html/images/optional.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/optional.png
   branches/release/libs/spirit/doc/html/images/pascal_string.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/pascal_string.png
   branches/release/libs/spirit/doc/html/images/plus.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/plus.png
   branches/release/libs/spirit/doc/html/images/predicate.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/predicate.png
   branches/release/libs/spirit/doc/html/images/sequence.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/sequence.png
   branches/release/libs/spirit/doc/html/images/start_stop.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/start_stop.png
   branches/release/libs/spirit/doc/html/images/terminal.png
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/images/terminal.png
   branches/release/libs/spirit/doc/html/index.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/index.html
   branches/release/libs/spirit/doc/html/spirit/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/
   branches/release/libs/spirit/doc/html/spirit/abstracts/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/
   branches/release/libs/spirit/doc/html/spirit/abstracts.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/attributes/
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/attributes.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/more_sompound_attributes.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/attributes/more_sompound_attributes.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/nonterminal_attributes.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/attributes/nonterminal_attributes.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/primitive_attributes.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/attributes/primitive_attributes.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/customize/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/customize/
   branches/release/libs/spirit/doc/html/spirit/abstracts/customize.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/customize.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/customize/is_container.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/customize/is_container.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/customize/store_value/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/customize/store_value/
   branches/release/libs/spirit/doc/html/spirit/abstracts/customize/store_value.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/customize/store_value.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/customize/store_value/container_value.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/customize/store_value/container_value.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/indepth/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/indepth/
   branches/release/libs/spirit/doc/html/spirit/abstracts/indepth.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/indepth.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/indepth/parsers_indepth.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/indepth/parsers_indepth.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html
   branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html
   branches/release/libs/spirit/doc/html/spirit/acknowledgments.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/acknowledgments.html
   branches/release/libs/spirit/doc/html/spirit/faq.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/faq.html
   branches/release/libs/spirit/doc/html/spirit/introduction.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/introduction.html
   branches/release/libs/spirit/doc/html/spirit/karma/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/
   branches/release/libs/spirit/doc/html/spirit/karma.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma.html
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements.html
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance.html
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/common_notation.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/common_notation.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/non_terminals.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/non_terminals.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/action.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/action.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/auxiliary.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/auxiliary.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/binary.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/binary.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/boolean.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/boolean.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/char.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/char.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/directives.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/directives.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/operators.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/operators.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/real_number.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/real_number.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/signed_int.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/signed_int.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/stream.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/stream.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/string.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/string.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/unsigned_int.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/unsigned_int.html
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/
   branches/release/libs/spirit/doc/html/spirit/karma/reference.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/binary/
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/binary.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/char/
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/char.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/list.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/list.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/stream/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/stream/
   branches/release/libs/spirit/doc/html/spirit/karma/reference/stream.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/stream.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/string/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/string/
   branches/release/libs/spirit/doc/html/spirit/karma/reference/string.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/string.html
   branches/release/libs/spirit/doc/html/spirit/karma/reference/string/string.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/string/string.html
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/tutorials.html
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_complex.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_complex.html
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html
   branches/release/libs/spirit/doc/html/spirit/lex/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/lex/
   branches/release/libs/spirit/doc/html/spirit/lex.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_attributes.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_attributes.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_parsing.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_parsing.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_primitives.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_primitives.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_definition.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_definition.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html
   branches/release/libs/spirit/doc/html/spirit/lex/lexer_introduction.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html
   branches/release/libs/spirit/doc/html/spirit/lex/quick_reference/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/lex/quick_reference/
   branches/release/libs/spirit/doc/html/spirit/lex/quick_reference.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/quick_reference.html
   branches/release/libs/spirit/doc/html/spirit/lex/quick_reference/common_notation.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/quick_reference/common_notation.html
   branches/release/libs/spirit/doc/html/spirit/lex/quick_reference/lexers.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/quick_reference/lexers.html
   branches/release/libs/spirit/doc/html/spirit/lex/quick_reference/phoenix.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/quick_reference/phoenix.html
   branches/release/libs/spirit/doc/html/spirit/lex/quick_reference/semantic_actions.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/quick_reference/semantic_actions.html
   branches/release/libs/spirit/doc/html/spirit/lex/reference/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/
   branches/release/libs/spirit/doc/html/spirit/lex/reference.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference.html
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts.html
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html
   branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/primitives/
   branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/primitives.html
   branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html
   branches/release/libs/spirit/doc/html/spirit/lex/reference/token.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/token.html
   branches/release/libs/spirit/doc/html/spirit/lex/reference/tokendef.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/tokendef.html
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/lex/tutorials/
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/tutorials.html
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_tutorials.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_tutorials.html
   branches/release/libs/spirit/doc/html/spirit/notes/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/notes/
   branches/release/libs/spirit/doc/html/spirit/notes.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/notes.html
   branches/release/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html
   branches/release/libs/spirit/doc/html/spirit/notes/style_guide.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/notes/style_guide.html
   branches/release/libs/spirit/doc/html/spirit/preface.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/preface.html
   branches/release/libs/spirit/doc/html/spirit/qi/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/
   branches/release/libs/spirit/doc/html/spirit/qi.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/common_notation.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/common_notation.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/non_terminals.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/non_terminals.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/phoenix.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/phoenix.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/action.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/action.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/auxiliary.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/auxiliary.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/binary.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/binary.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/char.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/char.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/directive.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/directive.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/numeric.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/numeric.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/operator.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/operator.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/string.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/string.html
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/semantic_actions.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/semantic_actions.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/
   branches/release/libs/spirit/doc/html/spirit/qi/reference.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/basics.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/binary/
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/binary.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/char/
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/char.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/char/char.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/concepts/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/concepts/
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/numeric.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/list.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/list.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/string/
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/string.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string/string.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/string/string.html
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html
   branches/release/libs/spirit/doc/html/spirit/qi/string/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/string/
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/complex___our_first_complex_parser.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/complex___our_first_complex_parser.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/number_list___stuffing_numbers_into_a_std__vector.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list___stuffing_numbers_into_a_std__vector.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/number_list_attribute___one_more__with_style.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list_attribute___one_more__with_style.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/number_list_redux___list_syntax.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list_redux___list_syntax.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/sum___adding_numbers.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/sum___adding_numbers.html
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html
   branches/release/libs/spirit/doc/html/spirit/references.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/references.html
   branches/release/libs/spirit/doc/html/spirit/repository.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/repository.html
   branches/release/libs/spirit/doc/html/spirit/structure/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/structure/
   branches/release/libs/spirit/doc/html/spirit/structure.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/structure.html
   branches/release/libs/spirit/doc/html/spirit/structure/include.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/structure/include.html
   branches/release/libs/spirit/doc/html/spirit/support/
      - copied from r56618, /trunk/libs/spirit/doc/html/spirit/support/
   branches/release/libs/spirit/doc/html/spirit/support.html
      - copied unchanged from r56618, /trunk/libs/spirit/doc/html/spirit/support.html
   branches/release/libs/spirit/doc/html/spirit/support/multi_pass.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/support/multi_pass.html
   branches/release/libs/spirit/doc/html/spirit/what_s_new.html
      - copied, changed from r56618, /trunk/libs/spirit/doc/html/spirit/what_s_new.html
   branches/release/libs/spirit/doc/karma/num_list.qbk
      - copied unchanged from r56618, /trunk/libs/spirit/doc/karma/num_list.qbk
   branches/release/libs/spirit/example/karma/num_list2.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/example/karma/num_list2.cpp
   branches/release/libs/spirit/example/karma/num_list3.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/example/karma/num_list3.cpp
   branches/release/libs/spirit/example/karma/num_matrix.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/example/karma/num_matrix.cpp
   branches/release/libs/spirit/example/karma/reorder_struct.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/example/karma/reorder_struct.cpp
   branches/release/libs/spirit/example/qi/parse_date.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/example/qi/parse_date.cpp
   branches/release/libs/spirit/example/qi/reorder_struct.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/example/qi/reorder_struct.cpp
   branches/release/libs/spirit/test/karma/attribute.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/test/karma/attribute.cpp
   branches/release/libs/spirit/test/karma/bool.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/test/karma/bool.cpp
   branches/release/libs/spirit/test/lex/regression004.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/test/lex/regression004.cpp
   branches/release/libs/spirit/test/qi/attribute.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/test/qi/attribute.cpp
   branches/release/libs/spirit/test/qi/bool.cpp
      - copied unchanged from r56618, /trunk/libs/spirit/test/qi/bool.cpp
Removed:
   branches/release/libs/spirit/test/karma/functor.cpp
Properties modified:
   branches/release/boost/spirit/ (props changed)
   branches/release/libs/spirit/ (props changed)
Binary files modified:
   branches/release/libs/spirit/doc/html/images/callouts/Thumbs.db
   branches/release/libs/spirit/doc/html/images/lexerflow.png
Text files modified:
   branches/release/boost/spirit/home/karma/action/action.hpp | 14
   branches/release/boost/spirit/home/karma/auxiliary.hpp | 1
   branches/release/boost/spirit/home/karma/binary/binary.hpp | 9
   branches/release/boost/spirit/home/karma/char/char.hpp | 2
   branches/release/boost/spirit/home/karma/char/char_class.hpp | 14 +
   branches/release/boost/spirit/home/karma/char/char_generator.hpp | 9
   branches/release/boost/spirit/home/karma/detail/alternative_function.hpp | 38 ++-
   branches/release/boost/spirit/home/karma/detail/output_iterator.hpp | 10
   branches/release/boost/spirit/home/karma/detail/pass_container.hpp | 14
   branches/release/boost/spirit/home/karma/directive/buffer.hpp | 8
   branches/release/boost/spirit/home/karma/directive/center_alignment.hpp | 13 +
   branches/release/boost/spirit/home/karma/directive/delimit.hpp | 12 +
   branches/release/boost/spirit/home/karma/directive/left_alignment.hpp | 13 +
   branches/release/boost/spirit/home/karma/directive/maxwidth.hpp | 8
   branches/release/boost/spirit/home/karma/directive/omit.hpp | 8
   branches/release/boost/spirit/home/karma/directive/repeat.hpp | 68 +++--
   branches/release/boost/spirit/home/karma/directive/right_alignment.hpp | 13 +
   branches/release/boost/spirit/home/karma/directive/verbatim.hpp | 8
   branches/release/boost/spirit/home/karma/nonterminal/detail/generator_binder.hpp | 28 ++
   branches/release/boost/spirit/home/karma/nonterminal/grammar.hpp | 14 +
   branches/release/boost/spirit/home/karma/nonterminal/rule.hpp | 8
   branches/release/boost/spirit/home/karma/numeric.hpp | 1
   branches/release/boost/spirit/home/karma/numeric/detail/numeric_utils.hpp | 28 ++
   branches/release/boost/spirit/home/karma/numeric/detail/real_utils.hpp | 24 --
   branches/release/boost/spirit/home/karma/numeric/int.hpp | 162 ++++++++------
   branches/release/boost/spirit/home/karma/numeric/real.hpp | 191 ++++++++---------
   branches/release/boost/spirit/home/karma/numeric/real_policies.hpp | 2
   branches/release/boost/spirit/home/karma/numeric/uint.hpp | 136 +++++++-----
   branches/release/boost/spirit/home/karma/operator/alternative.hpp | 8
   branches/release/boost/spirit/home/karma/operator/and_predicate.hpp | 8
   branches/release/boost/spirit/home/karma/operator/kleene.hpp | 19 +
   branches/release/boost/spirit/home/karma/operator/list.hpp | 64 ++++-
   branches/release/boost/spirit/home/karma/operator/not_predicate.hpp | 8
   branches/release/boost/spirit/home/karma/operator/optional.hpp | 58 +----
   branches/release/boost/spirit/home/karma/operator/plus.hpp | 23 +
   branches/release/boost/spirit/home/karma/operator/sequence.hpp | 8
   branches/release/boost/spirit/home/karma/stream/stream.hpp | 12
   branches/release/boost/spirit/home/karma/string/lit.hpp | 81 +------
   branches/release/boost/spirit/home/lex/lexer/char_token_def.hpp | 8
   branches/release/boost/spirit/home/lex/lexer/lexer.hpp | 2
   branches/release/boost/spirit/home/lex/lexer/lexertl/token.hpp | 215 +++++++++++--------
   branches/release/boost/spirit/home/lex/lexer/string_token_def.hpp | 6
   branches/release/boost/spirit/home/lex/lexer/token_def.hpp | 4
   branches/release/boost/spirit/home/lex/qi/plain_token.hpp | 5
   branches/release/boost/spirit/home/qi/action/action.hpp | 9
   branches/release/boost/spirit/home/qi/auxiliary.hpp | 1
   branches/release/boost/spirit/home/qi/auxiliary/attr.hpp | 2
   branches/release/boost/spirit/home/qi/binary/binary.hpp | 4
   branches/release/boost/spirit/home/qi/char/char.hpp | 37 ++-
   branches/release/boost/spirit/home/qi/char/char_class.hpp | 11
   branches/release/boost/spirit/home/qi/char/char_parser.hpp | 2
   branches/release/boost/spirit/home/qi/detail/alternative_function.hpp | 21 -
   branches/release/boost/spirit/home/qi/detail/assign_to.hpp | 121 ++++-------
   branches/release/boost/spirit/home/qi/detail/construct.hpp | 184 ++++++++++------
   branches/release/boost/spirit/home/qi/detail/pass_container.hpp | 8
   branches/release/boost/spirit/home/qi/detail/string_parse.hpp | 8
   branches/release/boost/spirit/home/qi/directive/lexeme.hpp | 7
   branches/release/boost/spirit/home/qi/directive/omit.hpp | 7
   branches/release/boost/spirit/home/qi/directive/raw.hpp | 9
   branches/release/boost/spirit/home/qi/directive/repeat.hpp | 9
   branches/release/boost/spirit/home/qi/directive/skip.hpp | 11 +
   branches/release/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp | 25 ++
   branches/release/boost/spirit/home/qi/nonterminal/grammar.hpp | 15 +
   branches/release/boost/spirit/home/qi/nonterminal/rule.hpp | 28 ++
   branches/release/boost/spirit/home/qi/nonterminal/simple_trace.hpp | 63 +++++
   branches/release/boost/spirit/home/qi/numeric.hpp | 1
   branches/release/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp | 7
   branches/release/boost/spirit/home/qi/numeric/detail/real_impl.hpp | 17
   branches/release/boost/spirit/home/qi/numeric/int.hpp | 20 +
   branches/release/boost/spirit/home/qi/operator/alternative.hpp | 64 +++++
   branches/release/boost/spirit/home/qi/operator/and_predicate.hpp | 7
   branches/release/boost/spirit/home/qi/operator/difference.hpp | 7
   branches/release/boost/spirit/home/qi/operator/expect.hpp | 7
   branches/release/boost/spirit/home/qi/operator/kleene.hpp | 16 +
   branches/release/boost/spirit/home/qi/operator/list.hpp | 9
   branches/release/boost/spirit/home/qi/operator/not_predicate.hpp | 7
   branches/release/boost/spirit/home/qi/operator/optional.hpp | 9
   branches/release/boost/spirit/home/qi/operator/permutation.hpp | 4
   branches/release/boost/spirit/home/qi/operator/plus.hpp | 9
   branches/release/boost/spirit/home/qi/operator/sequence.hpp | 7
   branches/release/boost/spirit/home/qi/operator/sequential_or.hpp | 4
   branches/release/boost/spirit/home/qi/parser.hpp | 5
   branches/release/boost/spirit/home/qi/string/symbols.hpp | 2
   branches/release/boost/spirit/home/qi/string/tst_map.hpp | 3
   branches/release/boost/spirit/home/support/attributes.hpp | 238 ++++++++++++++++++---
   branches/release/boost/spirit/home/support/char_class.hpp | 39 +++
   branches/release/boost/spirit/home/support/char_encoding/iso8859_1.hpp | 4
   branches/release/boost/spirit/home/support/char_encoding/standard.hpp | 4
   branches/release/boost/spirit/home/support/char_encoding/standard_wide.hpp | 29 ++
   branches/release/boost/spirit/home/support/common_terminals.hpp | 8
   branches/release/boost/spirit/home/support/container.hpp | 424 +++++++++++++++++++++++++++------------
   branches/release/boost/spirit/home/support/terminal.hpp | 46 ++++
   branches/release/boost/spirit/home/support/unused.hpp | 4
   branches/release/boost/spirit/repository/home/karma/directive/confix.hpp | 14 +
   branches/release/boost/spirit/repository/home/karma/nonterminal/subrule.hpp | 12
   branches/release/boost/spirit/repository/home/qi/directive/confix.hpp | 17 +
   branches/release/boost/spirit/repository/home/qi/directive/distinct.hpp | 8
   branches/release/boost/spirit/repository/home/qi/nonterminal/subrule.hpp | 12
   branches/release/libs/spirit/classic/doc/multi_pass.html | 30 +-
   branches/release/libs/spirit/doc/abstracts.qbk | 6
   branches/release/libs/spirit/doc/abstracts/peg.qbk | 16
   branches/release/libs/spirit/doc/abstracts/syntax_diagram.qbk | 5
   branches/release/libs/spirit/doc/acknowledgments.qbk | 11
   branches/release/libs/spirit/doc/concepts_template.qbk | 7
   branches/release/libs/spirit/doc/faq.qbk | 20
   branches/release/libs/spirit/doc/html/index.html | 4
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html | 4
   branches/release/libs/spirit/doc/html/spirit/abstracts/customize/is_container.html | 20
   branches/release/libs/spirit/doc/html/spirit/abstracts/customize/store_value/container_value.html | 20
   branches/release/libs/spirit/doc/html/spirit/abstracts/indepth/parsers_indepth.html | 4
   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 | 2
   branches/release/libs/spirit/doc/html/spirit/faq.html | 8
   branches/release/libs/spirit/doc/html/spirit/introduction.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html | 20
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html | 26 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html | 10
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html | 10
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html | 8
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html | 26 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html | 26 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/list.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/stream.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/string.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/string/string.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html | 8
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html | 6
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html | 6
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html | 4
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html | 4
   branches/release/libs/spirit/doc/html/spirit/lex/lexer_introduction.html | 6
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html | 12
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html | 8
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html | 12
   branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives.html | 2
   branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html | 14
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html | 8
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html | 8
   branches/release/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html | 10
   branches/release/libs/spirit/doc/html/spirit/preface.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html | 20
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/basics.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char.html | 26 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html | 31 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html | 30 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/list.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html | 10
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html | 10
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string/string.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html | 20
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html | 22 +-
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html | 6
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html | 8
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html | 10
   branches/release/libs/spirit/doc/html/spirit/support/multi_pass.html | 28 +-
   branches/release/libs/spirit/doc/html/spirit/what_s_new.html | 8
   branches/release/libs/spirit/doc/introduction.qbk | 33 +-
   branches/release/libs/spirit/doc/karma.qbk | 1
   branches/release/libs/spirit/doc/karma/auxiliary.qbk | 87 ++++++++
   branches/release/libs/spirit/doc/karma/binary.qbk | 6
   branches/release/libs/spirit/doc/karma/char.qbk | 12 +
   branches/release/libs/spirit/doc/karma/complex.qbk | 284 +++++--------------------
   branches/release/libs/spirit/doc/karma/directive.qbk | 27 ++
   branches/release/libs/spirit/doc/karma/numeric.qbk | 349 ++++++++++++++++++++++++++++++--
   branches/release/libs/spirit/doc/karma/operator.qbk | 36 +-
   branches/release/libs/spirit/doc/karma/quick_reference.qbk | 97 ++++++---
   branches/release/libs/spirit/doc/karma/stream.qbk | 6
   branches/release/libs/spirit/doc/karma/string.qbk | 6
   branches/release/libs/spirit/doc/karma/warming_up.qbk | 11 +
   branches/release/libs/spirit/doc/lex/concepts.qbk | 2
   branches/release/libs/spirit/doc/lex/introduction.qbk | 38 +-
   branches/release/libs/spirit/doc/lex/lexer.qbk | 9
   branches/release/libs/spirit/doc/lex/lexer_quickstart1.qbk | 4
   branches/release/libs/spirit/doc/lex/lexer_quickstart2.qbk | 6
   branches/release/libs/spirit/doc/lex/lexer_quickstart3.qbk | 22 +-
   branches/release/libs/spirit/doc/lex/lexer_semantic_actions.qbk | 12
   branches/release/libs/spirit/doc/lex/lexer_static_model.qbk | 23 +-
   branches/release/libs/spirit/doc/lex/lexer_tutorials.qbk | 20 -
   branches/release/libs/spirit/doc/lex/quick_reference.qbk | 6
   branches/release/libs/spirit/doc/lex/token_primitives.qbk | 20
   branches/release/libs/spirit/doc/lex/tokenizing.qbk | 24 +-
   branches/release/libs/spirit/doc/lex/tokens_values.qbk | 42 +-
   branches/release/libs/spirit/doc/notes/porting_from_1_8.qbk | 20 +
   branches/release/libs/spirit/doc/qi/actions.qbk | 32 +-
   branches/release/libs/spirit/doc/qi/binary.qbk | 2
   branches/release/libs/spirit/doc/qi/concepts.qbk | 2
   branches/release/libs/spirit/doc/qi/directive.qbk | 1
   branches/release/libs/spirit/doc/qi/employee.qbk | 26 +-
   branches/release/libs/spirit/doc/qi/numeric.qbk | 154 ++++++++++++++
   branches/release/libs/spirit/doc/qi/quick_reference.qbk | 36 +-
   branches/release/libs/spirit/doc/qi/tutorial_intro.qbk | 2
   branches/release/libs/spirit/doc/qi/warming_up.qbk | 20 +
   branches/release/libs/spirit/doc/reference_template.qbk | 8
   branches/release/libs/spirit/doc/spirit2.qbk | 78 +++---
   branches/release/libs/spirit/doc/what_s_new.qbk | 46 ++--
   branches/release/libs/spirit/example/karma/CMakeLists.txt | 14
   branches/release/libs/spirit/example/karma/Jamfile | 33 +-
   branches/release/libs/spirit/example/karma/num_list1.cpp | 14
   branches/release/libs/spirit/example/karma/printf_style_double_format.cpp | 11
   branches/release/libs/spirit/example/karma/reference.cpp | 135 ++++++++----
   branches/release/libs/spirit/example/lex/example1.cpp | 21 -
   branches/release/libs/spirit/example/lex/example2.cpp | 18
   branches/release/libs/spirit/example/lex/example3.cpp | 18
   branches/release/libs/spirit/example/lex/example4.cpp | 31 +-
   branches/release/libs/spirit/example/lex/example5.cpp | 35 +-
   branches/release/libs/spirit/example/lex/example6.cpp | 29 +-
   branches/release/libs/spirit/example/lex/print_numbers.cpp | 22 -
   branches/release/libs/spirit/example/lex/static_lexer/word_count_generate.cpp | 5
   branches/release/libs/spirit/example/lex/static_lexer/word_count_lexer_generate.cpp | 5
   branches/release/libs/spirit/example/lex/static_lexer/word_count_lexer_static.cpp | 9
   branches/release/libs/spirit/example/lex/static_lexer/word_count_static.cpp | 20 -
   branches/release/libs/spirit/example/lex/strip_comments.cpp | 22 +-
   branches/release/libs/spirit/example/lex/strip_comments_lexer.cpp | 17
   branches/release/libs/spirit/example/lex/word_count.cpp | 22 -
   branches/release/libs/spirit/example/lex/word_count_functor.cpp | 8
   branches/release/libs/spirit/example/lex/word_count_lexer.cpp | 13
   branches/release/libs/spirit/example/qi/CMakeLists.txt | 2
   branches/release/libs/spirit/example/qi/Jamfile | 22 +
   branches/release/libs/spirit/example/qi/mini_c/mini_c.hpp | 3
   branches/release/libs/spirit/example/qi/porting_guide_qi.cpp | 12
   branches/release/libs/spirit/example/qi/reference.cpp | 47 ++++
   branches/release/libs/spirit/repository/doc/html/index.html | 4
   branches/release/libs/spirit/repository/doc/html/spirit_repository/karma_components/directives/karma_confix_generator.html | 18
   branches/release/libs/spirit/repository/doc/html/spirit_repository/karma_components/nonterminal/subrule.html | 24 +-
   branches/release/libs/spirit/repository/doc/html/spirit_repository/preface.html | 8
   branches/release/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/confix.html | 18
   branches/release/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/distinct.html | 16
   branches/release/libs/spirit/repository/doc/html/spirit_repository/qi_components/nonterminal/subrule.html | 26 +-
   branches/release/libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive/flush_multi_pass.html | 16
   branches/release/libs/spirit/repository/test/karma/subrule.cpp | 2
   branches/release/libs/spirit/test/CMakeLists.txt | 4
   branches/release/libs/spirit/test/Jamfile | 5
   branches/release/libs/spirit/test/karma/alternative.cpp | 17 +
   branches/release/libs/spirit/test/karma/binary.cpp | 129 ++++++++++++
   branches/release/libs/spirit/test/karma/char.cpp | 44 ++++
   branches/release/libs/spirit/test/karma/delimiter.cpp | 8
   branches/release/libs/spirit/test/karma/format_manip.cpp | 49 ++--
   branches/release/libs/spirit/test/karma/format_manip_attr.cpp | 4
   branches/release/libs/spirit/test/karma/grammar.cpp | 6
   branches/release/libs/spirit/test/karma/grammar_fail.cpp | 5
   branches/release/libs/spirit/test/karma/int_numerics.cpp | 23 ++
   branches/release/libs/spirit/test/karma/kleene.cpp | 52 ++++
   branches/release/libs/spirit/test/karma/list.cpp | 69 +++++-
   branches/release/libs/spirit/test/karma/pattern.cpp | 71 +++++-
   branches/release/libs/spirit/test/karma/pattern2.cpp | 33 +-
   branches/release/libs/spirit/test/karma/plus.cpp | 50 ++++
   branches/release/libs/spirit/test/karma/real_numerics.cpp | 26 ++
   branches/release/libs/spirit/test/karma/repeat.cpp | 61 +++++
   branches/release/libs/spirit/test/karma/rule_fail.cpp | 3
   branches/release/libs/spirit/test/karma/stream.cpp | 7
   branches/release/libs/spirit/test/lex/lexertl1.cpp | 4
   branches/release/libs/spirit/test/lex/state_switcher_test.cpp | 1
   branches/release/libs/spirit/test/qi/alternative.cpp | 13 +
   branches/release/libs/spirit/test/qi/grammar_fail.cpp | 15
   branches/release/libs/spirit/test/qi/kleene.cpp | 28 ++
   branches/release/libs/spirit/test/qi/match_manip.cpp | 2
   branches/release/libs/spirit/test/qi/omit.cpp | 13
   branches/release/libs/spirit/test/qi/plus.cpp | 30 ++
   branches/release/libs/spirit/test/qi/repeat.cpp | 30 ++
   branches/release/libs/spirit/test/qi/rule.cpp | 39 +++
   branches/release/libs/spirit/test/qi/terminal_ex.cpp | 6
   346 files changed, 5130 insertions(+), 2826 deletions(-)

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -20,8 +20,8 @@
 #include <boost/spirit/home/karma/meta_compiler.hpp>
 #include <boost/spirit/home/karma/generator.hpp>
 
+#include <boost/mpl/bool.hpp>
 #include <boost/mpl/if.hpp>
-#include <boost/mpl/identity.hpp>
 #include <boost/type_traits/remove_const.hpp>
 #include <boost/type_traits/is_same.hpp>
 
@@ -54,13 +54,12 @@
             typedef traits::make_attribute<attr_type, Attribute> make_attribute;
 
             // create a attribute if none is supplied
- // this creates a _copy_ of the parameter because the semantic
- // action likely will change parts of this
+ // this creates a _copy_ of the attribute because the semantic
+ // action will likely change parts of this
             typename make_attribute::value_type attr = make_attribute::call(attr_);
 
             // call the function, passing the attribute, the context and a bool
             // flag that the client can set to false to fail generating.
- // The client can return false to fail parsing.
             return traits::action_dispatch<Subject>()(f, attr, ctx) &&
                    subject.generate(sink, ctx, d, attr);
         }
@@ -114,4 +113,11 @@
     };
 }}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject, typename Action>
+ struct has_semantic_action<karma::action<Subject, Action> >
+ : mpl::true_ {};
+}}}
+
 #endif

Modified: branches/release/boost/spirit/home/karma/auxiliary.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/auxiliary.hpp (original)
+++ branches/release/boost/spirit/home/karma/auxiliary.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -13,5 +13,6 @@
 #include <boost/spirit/home/karma/auxiliary/eps.hpp>
 #include <boost/spirit/home/karma/auxiliary/eol.hpp>
 #include <boost/spirit/home/karma/auxiliary/lazy.hpp>
+#include <boost/spirit/home/karma/auxiliary/attr_cast.hpp>
 
 #endif

Modified: branches/release/boost/spirit/home/karma/binary/binary.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/binary/binary.hpp (original)
+++ branches/release/boost/spirit/home/karma/binary/binary.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -19,7 +19,9 @@
 #include <boost/spirit/home/karma/delimit_out.hpp>
 #include <boost/spirit/home/karma/auxiliary/lazy.hpp>
 #include <boost/spirit/home/karma/detail/generate_to.hpp>
+#include <boost/spirit/home/karma/detail/extract_from.hpp>
 #include <boost/spirit/home/support/unused.hpp>
+#include <boost/spirit/home/support/container.hpp>
 #include <boost/fusion/include/vector.hpp>
 #include <boost/fusion/include/at.hpp>
 #include <boost/mpl/or.hpp>
@@ -181,13 +183,16 @@
         static bool generate(OutputIterator& sink, Context&, Delimiter const& d
           , Attribute const& attr)
         {
+ if (!traits::has_optional_value(attr))
+ return false;
+
             // Even if the endian types are not pod's (at least not in the
             // definition of C++03) it seems to be safe to assume they are.
             // This allows us to treat them as a sequence of consecutive bytes.
             boost::integer::endian<
                 endian, typename karma::detail::integer<bits>::type, bits
> p;
- p = attr;
+ p = traits::extract_from(attr);
             unsigned char const* bytes =
                 reinterpret_cast<unsigned char const*>(&p);
 
@@ -239,7 +244,7 @@
             typename OutputIterator, typename Context, typename Delimiter
           , typename Attribute>
         bool generate(OutputIterator& sink, Context&, Delimiter const& d
- , Attribute const& attr) const
+ , Attribute const&) const
         {
             // Even if the endian types are not pod's (at least not in the
             // definition of C++03) it seems to be safe to assume they are

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -113,7 +113,7 @@
         template <typename Attribute, typename CharParam, typename Context>
         bool test(Attribute const& attr, CharParam& ch, Context&) const
         {
- ch = attr;
+ ch = CharParam(attr);
             return true;
         }
 

Modified: branches/release/boost/spirit/home/karma/char/char_class.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/char/char_class.hpp (original)
+++ branches/release/boost/spirit/home/karma/char/char_class.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -40,6 +40,18 @@
 ///////////////////////////////////////////////////////////////////////////////
 namespace boost { namespace spirit { namespace karma
 {
+ // hoist the char classification namespaces into karma sub-namespaces of
+ // the same name
+ namespace ascii { using namespace boost::spirit::ascii; }
+ namespace iso8859_1 { using namespace boost::spirit::iso8859_1; }
+ namespace standard { using namespace boost::spirit::standard; }
+ namespace standard_wide { using namespace boost::spirit::standard_wide; }
+
+ // Import the standard namespace into the karma namespace. This allows
+ // for default handling of all character/string related operations if not
+ // prefixed with a character set namespace.
+ using namespace boost::spirit::standard;
+
     ///////////////////////////////////////////////////////////////////////////
     //
     // char_class
@@ -113,7 +125,7 @@
         template <typename Attribute, typename CharParam, typename Context>
         bool test(Attribute const& attr, CharParam& ch, Context&) const
         {
- ch = attr;
+ ch = CharParam(attr);
 
             using spirit::char_class::classify;
             return classify<char_encoding>::is(tag::space(), attr);

Modified: branches/release/boost/spirit/home/karma/char/char_generator.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/char/char_generator.hpp (original)
+++ branches/release/boost/spirit/home/karma/char/char_generator.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -14,10 +14,12 @@
 #include <boost/spirit/home/karma/domain.hpp>
 #include <boost/spirit/home/karma/generator.hpp>
 #include <boost/spirit/home/karma/detail/generate_to.hpp>
+#include <boost/spirit/home/karma/detail/extract_from.hpp>
 #include <boost/spirit/home/karma/meta_compiler.hpp>
 #include <boost/spirit/home/karma/delimit_out.hpp>
 #include <boost/spirit/home/support/unused.hpp>
 #include <boost/spirit/home/support/info.hpp>
+#include <boost/spirit/home/support/container.hpp>
 
 namespace boost { namespace spirit
 {
@@ -69,8 +71,11 @@
         bool generate(OutputIterator& sink, Context& context, Delimiter const& d
           , Attribute const& attr) const
         {
- Char ch = Char();
- if (!this->derived().test(attr, ch, context))
+ if (!traits::has_optional_value(attr))
+ return false;
+
+ Attr ch = Attr();
+ if (!this->derived().test(traits::extract_from(attr), ch, context))
                 return false;
 
             return karma::detail::generate_to(sink, ch, char_encoding(), tag()) &&

Modified: branches/release/boost/spirit/home/karma/detail/alternative_function.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/detail/alternative_function.hpp (original)
+++ branches/release/boost/spirit/home/karma/detail/alternative_function.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -32,10 +32,18 @@
     // A component is compatible to a given Attribute type if the Attribute
     // is the same as the expected type of the component
     ///////////////////////////////////////////////////////////////////////////
+ template <typename Expected, typename Attribute>
+ struct attribute_is_compatible
+ : is_convertible<Attribute, Expected> {};
+
+ template <typename Expected, typename Attribute>
+ struct attribute_is_compatible<Expected, boost::optional<Attribute> >
+ : is_convertible<Attribute, Expected> {};
+
     template <typename Expected, typename Attribute, typename IsNotVariant>
     struct compute_compatible_component_variant
       : mpl::or_<
- is_convertible<Attribute, Expected>
+ attribute_is_compatible<Expected, Attribute>
         , is_same<hold_any, Expected> > {};
 
     template <typename Expected, typename Attribute>
@@ -79,14 +87,14 @@
 
     // this gets instantiated if the Attribute type is _not_ compatible with
     // the generator
- template <typename Component, typename Attribute, typename Expected,
- typename Enable = void>
+ template <typename Component, typename Attribute, typename Expected
+ , typename Enable = void>
     struct alternative_generate
     {
         template <typename OutputIterator, typename Context, typename Delimiter>
         static bool
- call(Component const&, OutputIterator&, Context&, Delimiter const&,
- Attribute const&)
+ call(Component const&, OutputIterator&, Context&, Delimiter const&
+ , Attribute const&)
         {
             return false;
         }
@@ -97,8 +105,8 @@
     {
         template <typename OutputIterator, typename Context, typename Delimiter>
         static bool
- call(Component const& component, OutputIterator& sink,
- Context& ctx, Delimiter const& d, unused_type)
+ call(Component const& component, OutputIterator& sink, Context& ctx
+ , Delimiter const& d, unused_type)
         {
             // return true if any of the generators succeed
             return component.generate(sink, ctx, d, unused);
@@ -126,8 +134,8 @@
     {
         template <typename OutputIterator, typename Context, typename Delimiter>
         static bool
- call(Component const& component, OutputIterator& sink,
- Context& ctx, Delimiter const& d, Attribute const& attr)
+ call(Component const& component, OutputIterator& sink
+ , Context& ctx, Delimiter const& d, Attribute const& attr)
         {
             return call(component, sink, ctx, d, attr
               , spirit::traits::not_is_variant<Attribute>());
@@ -135,16 +143,16 @@
 
         template <typename OutputIterator, typename Context, typename Delimiter>
         static bool
- call(Component const& component, OutputIterator& sink,
- Context& ctx, Delimiter const& d, Attribute const& attr, mpl::true_)
+ call(Component const& component, OutputIterator& sink
+ , Context& ctx, Delimiter const& d, Attribute const& attr, mpl::true_)
         {
             return component.generate(sink, ctx, d, attr);
         }
 
         template <typename OutputIterator, typename Context, typename Delimiter>
         static bool
- call(Component const& component, OutputIterator& sink,
- Context& ctx, Delimiter const& d, Attribute const& attr, mpl::false_)
+ call(Component const& component, OutputIterator& sink
+ , Context& ctx, Delimiter const& d, Attribute const& attr, mpl::false_)
         {
             typedef
                 compute_compatible_component<Expected, Attribute>
@@ -175,8 +183,8 @@
         typename Attribute>
     struct alternative_generate_functor
     {
- alternative_generate_functor(OutputIterator& sink_, Context& ctx_,
- Delimiter const& d, Attribute const& attr_)
+ alternative_generate_functor(OutputIterator& sink_, Context& ctx_
+ , Delimiter const& d, Attribute const& attr_)
           : sink(sink_), ctx(ctx_), delim(d), attr(attr_) {}
 
         template <typename Component>

Modified: branches/release/boost/spirit/home/karma/detail/output_iterator.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/detail/output_iterator.hpp (original)
+++ branches/release/boost/spirit/home/karma/detail/output_iterator.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -371,7 +371,7 @@
     {
         // get the most derived type of this class
         typedef typename mpl::if_<
- traits::is_not_unused<Derived>, Derived
+ traits::not_is_unused<Derived>, Derived
           , output_iterator<OutputIterator, Properties, Derived>
>::type most_derived_type;
 
@@ -449,12 +449,20 @@
             return *this;
         }
 
+#if defined(BOOST_MSVC)
+// 'argument' : conversion from '...' to '...', possible loss of data
+#pragma warning (push)
+#pragma warning (disable: 4244)
+#endif
         template <typename T>
         void operator=(T const& value)
         {
             if (this->base_iterator::output(value))
                 *sink = value;
         }
+#if defined(BOOST_MSVC)
+#pragma warning (pop)
+#endif
 
         // plain output iterators are considered to be good all the time
         bool good() const { return true; }

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -75,7 +75,9 @@
         bool dispatch_attribute_element(Component const& component, mpl::false_) const
         {
             // get the next value to generate from container
- if (!traits::compare(iter, traits::end(attr)) &&
+ typename traits::container_iterator<Attr>::type end =
+ traits::end(attr);
+ if (!traits::compare(iter, end) &&
                 !f(component, traits::deref(iter)))
             {
                 // needs to return false as long as everything is ok
@@ -92,7 +94,9 @@
         template <typename Component>
         bool dispatch_attribute_element(Component const& component, mpl::true_) const
         {
- bool result = f(component, make_iterator_range(iter, traits::end(attr)));
+ typename traits::container_iterator<Attr>::type end =
+ traits::end(attr);
+ bool result = f(component, make_iterator_range(iter, end));
             if (result)
                 iter = traits::end(attr); // adjust current iter to the end
             return result;
@@ -130,7 +134,7 @@
             // of the current element (component). If this is has no attribute
             // we shouldn't use an element of the container but unused_type
             // instead
- typedef traits::is_not_unused<
+ typedef traits::not_is_unused<
                 typename traits::attribute_of<Component, context_type>::type
> predicate;
 
@@ -154,7 +158,7 @@
         template <typename Component>
         bool operator()(Component const& component) const
         {
- typedef typename traits::result_of::value<Attr>::type rhs;
+ typedef typename traits::container_value<Attr>::type rhs;
             typedef typename traits::attribute_of<
                 Component, context_type>::type lhs_attribute;
 
@@ -164,7 +168,7 @@
 
         F f;
         Attr const& attr;
- mutable typename traits::result_of::iterator<Attr>::type iter;
+ mutable typename traits::container_iterator<Attr>::type iter;
     };
 
     // Utility function to make a pass_container

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -99,4 +99,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<karma::buffer_directive<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -294,6 +294,19 @@
 
 }}} // namespace boost::spirit::karma
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject, typename Width>
+ struct has_semantic_action<karma::simple_center_alignment<Subject, Width> >
+ : unary_has_semantic_action<Subject> {};
+
+ template <typename Subject, typename Padding, typename Width>
+ struct has_semantic_action<
+ karma::padding_center_alignment<Subject, Padding, Width> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -168,4 +168,16 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<karma::redelimit_generator<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+ template <typename Subject, typename Delimiter>
+ struct has_semantic_action<karma::delimit_generator<Subject, Delimiter> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -277,6 +277,19 @@
 
 }}} // namespace boost::spirit::karma
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject, typename Width>
+ struct has_semantic_action<karma::simple_left_alignment<Subject, Width> >
+ : unary_has_semantic_action<Subject> {};
+
+ template <typename Subject, typename Padding, typename Width>
+ struct has_semantic_action<
+ karma::padding_left_alignment<Subject, Padding, Width> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -219,6 +219,14 @@
 
 }}} // namespace boost::spirit::karma
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<karma::maxwidth_width<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -84,4 +84,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<karma::omit_directive<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -124,11 +124,28 @@
     struct repeat_generator
       : unary_generator<repeat_generator<Subject, LoopIter> >
     {
+ private:
+ // iterate over the given container until its exhausted or the embedded
+ // (left) generator succeeds
+ template <
+ typename OutputIterator, typename Context, typename Delimiter
+ , typename Iterator>
+ bool generate_subject(OutputIterator& sink, Context& ctx
+ , Delimiter const& d, Iterator& it, Iterator& end) const
+ {
+ while (!traits::compare(it, end))
+ {
+ if (subject.generate(sink, ctx, d, traits::deref(it)))
+ return true;
+ traits::next(it);
+ }
+ return false;
+ }
+
+ public:
         typedef Subject subject_type;
 
- typedef mpl::int_<
- generator_properties::countingbuffer | subject_type::properties::value
- > properties;
+ typedef mpl::int_<subject_type::properties::value> properties;
 
         // Build a std::vector from the subject's attribute. Note
         // that build_std_vector may return unused_type if the
@@ -148,7 +165,7 @@
         bool generate(OutputIterator& sink, Context& ctx, Delimiter const& d
           , Attribute const& attr) const
         {
- typedef typename traits::result_of::iterator<
+ typedef typename traits::container_iterator<
                 typename add_const<Attribute>::type
>::type iterator_type;
 
@@ -156,38 +173,25 @@
             iterator_type end = traits::end(attr);
             typename LoopIter::type i = iter.start();
 
+ // generate the minimal required amount of output
+ for (/**/; !iter.got_min(i); ++i, traits::next(it))
             {
- // inhibit (redirect) output, disable counting while buffering
- detail::enable_buffering<OutputIterator> buffering(sink);
-
+ if (!generate_subject(sink, ctx, d, it, end))
                 {
- detail::disable_counting<OutputIterator> nocounting(sink);
-
- // generate the minimal required amount of output
- for (/**/; !iter.got_min(i); ++i, traits::next(it))
- {
- if (traits::compare(it, end) ||
- !subject.generate(sink, ctx, d, traits::deref(it)))
- {
- // if we fail before reaching the minimum iteration
- // required, do not output anything and return false
- return false;
- }
- }
- } // re-enable counting
-
- // copy the output generated so far to the target output iterator
- buffering.buffer_copy();
+ // if we fail before reaching the minimum iteration
+ // required, do not output anything and return false
+ return false;
+ }
             }
 
             // generate some more up to the maximum specified
- bool result = true;
- for (/**/; result && !iter.got_max(i) && !traits::compare(it, end);
+ for (/**/; detail::sink_is_good(sink) && !iter.got_max(i);
                  ++i, traits::next(it))
             {
- result = subject.generate(sink, ctx, d, traits::deref(it));
+ if (!generate_subject(sink, ctx, d, it, end))
+ break;
             }
- return result;
+ return detail::sink_is_good(sink);
         }
 
         template <typename Context>
@@ -266,4 +270,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject, typename LoopIter>
+ struct has_semantic_action<karma::repeat_generator<Subject, LoopIter> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #endif

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -287,6 +287,19 @@
 
 }}} // namespace boost::spirit::karma
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject, typename Width>
+ struct has_semantic_action<karma::simple_right_alignment<Subject, Width> >
+ : unary_has_semantic_action<Subject> {};
+
+ template <typename Subject, typename Padding, typename Width>
+ struct has_semantic_action<
+ karma::padding_right_alignment<Subject, Padding, Width> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -92,4 +92,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<karma::verbatim_generator<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #endif

Modified: branches/release/boost/spirit/home/karma/nonterminal/detail/generator_binder.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/nonterminal/detail/generator_binder.hpp (original)
+++ branches/release/boost/spirit/home/karma/nonterminal/detail/generator_binder.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -13,6 +13,7 @@
 
 #include <boost/fusion/include/at.hpp>
 #include <boost/mpl/bool.hpp>
+#include <boost/spirit/home/support/has_semantic_action.hpp>
 
 namespace boost { namespace spirit { namespace karma { namespace detail
 {
@@ -24,11 +25,31 @@
           : g(g) {}
 
         template <typename OutputIterator, typename Delimiter, typename Context>
+ bool call(OutputIterator& sink, Context& context
+ , Delimiter const& delim, mpl::true_) const
+ {
+ // If DeducedAuto is false (semantic actions is present), the
+ // component's attribute is unused.
+ return g.generate(sink, context, delim, unused);
+ }
+
+ template <typename OutputIterator, typename Delimiter, typename Context>
+ bool call(OutputIterator& sink, Context& context
+ , Delimiter const& delim, mpl::false_) const
+ {
+ // If DeducedAuto is true (no semantic action), we pass the rule's
+ // attribute on to the component.
+ return g.generate(sink, context, delim
+ , fusion::at_c<0>(context.attributes));
+ }
+
+ template <typename OutputIterator, typename Delimiter, typename Context>
         bool operator()(OutputIterator& sink, Context& context
           , Delimiter const& delim) const
         {
- // If Auto is false, the component's attribute is unused.
- return g.generate(sink, context, delim, unused);
+ // If Auto is false, we need to deduce whether to apply auto rule
+ typedef typename traits::has_semantic_action<Generator>::type auto_rule;
+ return call(sink, context, delim, auto_rule());
         }
 
         Generator g;
@@ -45,7 +66,7 @@
         bool operator()(OutputIterator& sink, Context& context
           , Delimiter const& delim) const
         {
- // If Auto is true, we pass the rule's attribute on to the component.
+ // If Auto is true, the component's attribute is unused.
             return g.generate(sink, context, delim
                 , fusion::at_c<0>(context.attributes));
         }
@@ -59,6 +80,7 @@
     {
         return generator_binder<Generator, Auto>(g);
     }
+
 }}}}
 
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -13,6 +13,7 @@
 
 #include <boost/spirit/home/support/unused.hpp>
 #include <boost/spirit/home/support/info.hpp>
+#include <boost/spirit/home/support/assert_msg.hpp>
 #include <boost/spirit/home/karma/domain.hpp>
 #include <boost/spirit/home/karma/nonterminal/rule.hpp>
 #include <boost/spirit/home/karma/reference.hpp>
@@ -58,6 +59,19 @@
           , name_(name_)
         {}
 
+ // This constructor is used to catch if the start rule is not
+ // compatible with the grammar.
+ template <typename Iterator_, typename T1_, typename T2_, typename T3_>
+ grammar(rule<Iterator_, T1_, T2_, T3_> const&
+ , std::string const& = "unnamed-grammar")
+ {
+ // If you see the assertion below failing then the start rule
+ // passed to the constructor of the grammar is not compatible with
+ // the grammar (i.e. it uses different template parameters).
+ BOOST_SPIRIT_ASSERT_MSG(false, incompatible_start_rule,
+ (rule<Iterator_, T1_, T2_, T3_>));
+ }
+
         std::string name() const
         {
             return name_;

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -150,7 +150,7 @@
             // the expression (expr) is not a valid spirit karma expression.
             BOOST_SPIRIT_ASSERT_MATCH(karma::domain, Expr);
 
- f = detail::bind_generator<mpl::true_>(compile<karma::domain>(expr));
+ f = detail::bind_generator<mpl::false_>(compile<karma::domain>(expr));
         }
 
         rule& operator=(rule const& rhs)
@@ -227,7 +227,8 @@
                 // If you are seeing a compilation error here, you are probably
                 // trying to use a rule or a grammar which has inherited
                 // attributes, without passing values for them.
- context_type context(make_attribute::call(attr));
+ context_type context(traits::pre_transform<attr_type>(
+ make_attribute::call(attr)));
 
                 // If you are seeing a compilation error here stating that the
                 // third parameter can't be converted to a karma::reference
@@ -256,7 +257,8 @@
                 // If you are seeing a compilation error here, you are probably
                 // trying to use a rule or a grammar which has inherited
                 // attributes, passing values of incompatible types for them.
- context_type context(make_attribute::call(attr), params, caller_context);
+ context_type context(traits::pre_transform<attr_type>(
+ make_attribute::call(attr)), params, caller_context);
 
                 // If you are seeing a compilation error here stating that the
                 // third parameter can't be converted to a karma::reference

Modified: branches/release/boost/spirit/home/karma/numeric.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/numeric.hpp (original)
+++ branches/release/boost/spirit/home/karma/numeric.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -10,6 +10,7 @@
 #pragma once
 #endif
 
+#include <boost/spirit/home/karma/numeric/bool.hpp>
 #include <boost/spirit/home/karma/numeric/int.hpp>
 #include <boost/spirit/home/karma/numeric/uint.hpp>
 #include <boost/spirit/home/karma/numeric/real.hpp>

Modified: branches/release/boost/spirit/home/karma/numeric/detail/numeric_utils.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/numeric/detail/numeric_utils.hpp (original)
+++ branches/release/boost/spirit/home/karma/numeric/detail/numeric_utils.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -102,7 +102,7 @@
         template <>
         struct absolute_value_helper<float>
         {
- typedef long double result_type;
+ typedef float result_type;
             static result_type call(float n)
             {
                 return (spirit::detail::signbit)(n) ? -n : n;
@@ -112,7 +112,7 @@
         template <>
         struct absolute_value_helper<double>
         {
- typedef long double result_type;
+ typedef double result_type;
             static result_type call(double n)
             {
                 return (spirit::detail::signbit)(n) ? -n : n;
@@ -591,6 +591,30 @@
         }
     };
 
+ ///////////////////////////////////////////////////////////////////////////
+ // These are helper functions for the real policies allowing to generate
+ // a single character and a string
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename CharEncoding = unused_type, typename Tag = unused_type>
+ struct char_inserter
+ {
+ template <typename OutputIterator, typename Char>
+ static bool call(OutputIterator& sink, Char c)
+ {
+ return detail::generate_to(sink, c, CharEncoding(), Tag());
+ }
+ };
+
+ template <typename CharEncoding = unused_type, typename Tag = unused_type>
+ struct string_inserter
+ {
+ template <typename OutputIterator, typename String>
+ static bool call(OutputIterator& sink, String str)
+ {
+ return detail::string_generate(sink, str, CharEncoding(), Tag());
+ }
+ };
+
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/karma/numeric/detail/real_utils.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/numeric/detail/real_utils.hpp (original)
+++ branches/release/boost/spirit/home/karma/numeric/detail/real_utils.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -26,30 +26,6 @@
 namespace boost { namespace spirit { namespace karma
 {
     ///////////////////////////////////////////////////////////////////////////
- // These are helper functions for the real policies allowing to generate
- // a single character and a string
- ///////////////////////////////////////////////////////////////////////////
- template <typename CharEncoding = unused_type, typename Tag = unused_type>
- struct char_inserter
- {
- template <typename OutputIterator, typename Char>
- static bool call(OutputIterator& sink, Char c)
- {
- return detail::generate_to(sink, c, CharEncoding(), Tag());
- }
- };
-
- template <typename CharEncoding = unused_type, typename Tag = unused_type>
- struct string_inserter
- {
- template <typename OutputIterator, typename String>
- static bool call(OutputIterator& sink, String str)
- {
- return detail::string_generate(sink, str, CharEncoding(), Tag());
- }
- };
-
- ///////////////////////////////////////////////////////////////////////////
     //
     // The real_inserter template takes care of the floating point number to
     // string conversion. The Policies template parameter is used to allow

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -16,11 +16,13 @@
 #include <boost/spirit/home/support/string_traits.hpp>
 #include <boost/spirit/home/support/info.hpp>
 #include <boost/spirit/home/support/char_class.hpp>
+#include <boost/spirit/home/support/container.hpp>
 #include <boost/spirit/home/support/detail/get_encoding.hpp>
 #include <boost/spirit/home/karma/meta_compiler.hpp>
 #include <boost/spirit/home/karma/delimit_out.hpp>
 #include <boost/spirit/home/karma/auxiliary/lazy.hpp>
 #include <boost/spirit/home/karma/detail/get_casetag.hpp>
+#include <boost/spirit/home/karma/detail/extract_from.hpp>
 #include <boost/spirit/home/karma/domain.hpp>
 #include <boost/spirit/home/karma/numeric/detail/numeric_utils.hpp>
 #include <boost/fusion/include/at.hpp>
@@ -179,6 +181,17 @@
       : primitive_generator<any_int_generator<T, CharEncoding, Tag, Radix
           , force_sign> >
     {
+ private:
+ template <typename OutputIterator, typename Attribute>
+ static bool insert_int(OutputIterator& sink, Attribute const& attr)
+ {
+ return sign_inserter::call(sink, detail::is_zero(attr)
+ , detail::is_negative(attr), force_sign) &&
+ int_inserter<Radix, CharEncoding, Tag>::call(sink
+ , detail::absolute_value(attr));
+ }
+
+ public:
         template <typename Context, typename Unused>
         struct attribute
         {
@@ -200,11 +213,11 @@
         generate(OutputIterator& sink, Context&, Delimiter const& d
           , Attribute const& attr)
         {
- return sign_inserter::call(sink, detail::is_zero(attr)
- , detail::is_negative(attr), force_sign) &&
- int_inserter<Radix, CharEncoding, Tag>::call(sink
- , detail::absolute_value(attr)) &&
- karma::delimit_out(sink, d); // always do post-delimiting
+ if (!traits::has_optional_value(attr))
+ return false; // fail if it's an uninitialized optional
+
+ return insert_int(sink, traits::extract_from(attr)) &&
+ delimit_out(sink, d); // always do post-delimiting
         }
 
         // this int has no Attribute attached, it needs to have been
@@ -235,6 +248,17 @@
       : primitive_generator<literal_int_generator<T, CharEncoding, Tag, Radix
           , force_sign, no_attribute> >
     {
+ private:
+ template <typename OutputIterator, typename Attribute>
+ static bool insert_int(OutputIterator& sink, Attribute const& attr)
+ {
+ return sign_inserter::call(sink, detail::is_zero(attr)
+ , detail::is_negative(attr), force_sign) &&
+ int_inserter<Radix, CharEncoding, Tag>::call(sink
+ , detail::absolute_value(attr));
+ }
+
+ public:
         template <typename Context, typename Unused>
         struct attribute
           : mpl::if_c<no_attribute, unused_type, T>
@@ -259,14 +283,12 @@
         bool generate(OutputIterator& sink, Context&, Delimiter const& d
           , Attribute const& attr) const
         {
- if (n_ != attr)
+ if (!traits::has_optional_value(attr) ||
+ n_ != traits::extract_from(attr))
+ {
                 return false;
-
- return sign_inserter::call(sink, detail::is_zero(n_)
- , detail::is_negative(n_), force_sign) &&
- int_inserter<Radix, CharEncoding, Tag>::call(sink
- , detail::absolute_value(n_)) &&
- karma::delimit_out(sink, d); // always do post-delimiting
+ }
+ return insert_int(sink, n_) && delimit_out(sink, d);
         }
 
         // A int_(1) without any associated attribute just emits its
@@ -275,11 +297,7 @@
         bool generate(OutputIterator& sink, Context&, Delimiter const& d
           , unused_type) const
         {
- return sign_inserter::call(sink, detail::is_zero(n_)
- , detail::is_negative(n_), force_sign) &&
- int_inserter<Radix, CharEncoding, Tag>::call(sink
- , detail::absolute_value(n_)) &&
- karma::delimit_out(sink, d); // always do post-delimiting
+ return insert_int(sink, n_) && delimit_out(sink, d);
         }
 
         template <typename Context>
@@ -294,99 +312,105 @@
     ///////////////////////////////////////////////////////////////////////////
     // Generator generators: make_xxx function (objects)
     ///////////////////////////////////////////////////////////////////////////
- template <typename T, typename Modifiers, unsigned Radix = 10
- , bool force_sign = false>
- struct make_int
+ namespace detail
     {
- static bool const lower =
- has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
- static bool const upper =
- has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
-
- typedef any_int_generator<
- T
- , typename spirit::detail::get_encoding<
- Modifiers, unused_type, lower || upper>::type
- , typename detail::get_casetag<Modifiers, lower || upper>::type
- , Radix
- , force_sign
- > result_type;
-
- result_type operator()(unused_type, unused_type) const
+ template <typename T, typename Modifiers, unsigned Radix = 10
+ , bool force_sign = false>
+ struct make_int
         {
- return result_type();
- }
- };
+ static bool const lower =
+ has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
+ static bool const upper =
+ has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
+
+ typedef any_int_generator<
+ T
+ , typename spirit::detail::get_encoding<
+ Modifiers, unused_type, lower || upper>::type
+ , typename detail::get_casetag<Modifiers, lower || upper>::type
+ , Radix
+ , force_sign
+ > result_type;
+
+ result_type operator()(unused_type, unused_type) const
+ {
+ return result_type();
+ }
+ };
+ }
 
     ///////////////////////////////////////////////////////////////////////////
     template <typename Modifiers>
     struct make_primitive<tag::short_, Modifiers>
- : make_int<short, Modifiers> {};
+ : detail::make_int<short, Modifiers> {};
 
     template <typename Modifiers>
     struct make_primitive<tag::int_, Modifiers>
- : make_int<int, Modifiers> {};
+ : detail::make_int<int, Modifiers> {};
 
     template <typename Modifiers>
     struct make_primitive<tag::long_, Modifiers>
- : make_int<long, Modifiers> {};
+ : detail::make_int<long, Modifiers> {};
 
 #ifdef BOOST_HAS_LONG_LONG
     template <typename Modifiers>
     struct make_primitive<tag::long_long, Modifiers>
- : make_int<boost::long_long_type, Modifiers> {};
+ : detail::make_int<boost::long_long_type, Modifiers> {};
 #endif
 
     template <typename T, unsigned Radix, bool force_sign, typename Modifiers>
     struct make_primitive<tag::int_tag<T, Radix, force_sign>, Modifiers>
- : make_int<T, Modifiers, Radix, force_sign> {};
+ : detail::make_int<T, Modifiers, Radix, force_sign> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename T, typename Modifiers, unsigned Radix = 10
- , bool force_sign = false>
- struct make_int_direct
+ namespace detail
     {
- static bool const lower =
- has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
- static bool const upper =
- has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
-
- typedef literal_int_generator<
- T
- , typename spirit::detail::get_encoding<
- Modifiers, unused_type, lower || upper>::type
- , typename detail::get_casetag<Modifiers, lower || upper>::type
- , Radix, force_sign, false
- > result_type;
-
- template <typename Terminal>
- result_type operator()(Terminal const& term, unused_type) const
+ template <typename T, typename Modifiers, unsigned Radix = 10
+ , bool force_sign = false>
+ struct make_int_direct
         {
- return result_type(fusion::at_c<0>(term.args));
- }
- };
+ static bool const lower =
+ has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
+ static bool const upper =
+ has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
+
+ typedef literal_int_generator<
+ T
+ , typename spirit::detail::get_encoding<
+ Modifiers, unused_type, lower || upper>::type
+ , typename detail::get_casetag<Modifiers, lower || upper>::type
+ , Radix, force_sign, 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 Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::short_, fusion::vector1<A0> >, Modifiers>
- : make_int_direct<short, Modifiers> {};
+ : detail::make_int_direct<short, Modifiers> {};
 
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::int_, fusion::vector1<A0> >, Modifiers>
- : make_int_direct<int, Modifiers> {};
+ : detail::make_int_direct<int, Modifiers> {};
 
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::long_, fusion::vector1<A0> >, Modifiers>
- : make_int_direct<long, Modifiers> {};
+ : detail::make_int_direct<long, Modifiers> {};
 
 #ifdef BOOST_HAS_LONG_LONG
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::long_long, fusion::vector1<A0> >, Modifiers>
- : make_int_direct<boost::long_long_type, Modifiers> {};
+ : detail::make_int_direct<boost::long_long_type, Modifiers> {};
 #endif
 
     template <typename T, unsigned Radix, bool force_sign, typename A0
@@ -394,7 +418,7 @@
     struct make_primitive<
         terminal_ex<tag::int_tag<T, Radix, force_sign>, fusion::vector1<A0> >
           , Modifiers>
- : make_int_direct<T, Modifiers, Radix, force_sign> {};
+ : detail::make_int_direct<T, Modifiers, Radix, force_sign> {};
 
     ///////////////////////////////////////////////////////////////////////////
     namespace detail

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -15,12 +15,14 @@
 #include <boost/spirit/home/support/string_traits.hpp>
 #include <boost/spirit/home/support/info.hpp>
 #include <boost/spirit/home/support/char_class.hpp>
+#include <boost/spirit/home/support/container.hpp>
 #include <boost/spirit/home/support/detail/get_encoding.hpp>
 #include <boost/spirit/home/karma/meta_compiler.hpp>
 #include <boost/spirit/home/karma/char.hpp>
 #include <boost/spirit/home/karma/delimit_out.hpp>
 #include <boost/spirit/home/karma/auxiliary/lazy.hpp>
 #include <boost/spirit/home/karma/detail/get_casetag.hpp>
+#include <boost/spirit/home/karma/detail/extract_from.hpp>
 #include <boost/spirit/home/karma/domain.hpp>
 #include <boost/spirit/home/karma/numeric/real_policies.hpp>
 #include <boost/spirit/home/karma/numeric/detail/real_utils.hpp>
@@ -30,31 +32,25 @@
 
 namespace boost { namespace spirit
 {
- namespace tag
- {
- template <typename T, typename Policies>
- struct real_tag
- {
- real_tag() {}
- real_tag(Policies const& policies)
- : policies_(policies) {}
-
- Policies policies_;
- };
- }
-
     namespace karma
     {
         ///////////////////////////////////////////////////////////////////////
+ // forward declaration only
+ template <typename T>
+ struct real_policies;
+
+ ///////////////////////////////////////////////////////////////////////
         // This one 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
- : spirit::terminal<tag::real_tag<T, Policies> >
+ : spirit::terminal<tag::stateful_tag<Policies, tag::double_, T> >
         {
+ typedef tag::stateful_tag<Policies, tag::double_, T> tag_type;
+
             real_generator() {}
             real_generator(Policies const& p)
- : spirit::terminal<tag::real_tag<T, Policies> >(p) {}
+ : spirit::terminal<tag_type>(p) {}
         };
     }
 
@@ -117,20 +113,22 @@
 
     ///////////////////////////////////////////////////////////////////////////
     // enables custom real generator
- template <typename T, typename Policy>
- struct use_terminal<karma::domain, tag::real_tag<T, Policy> >
+ template <typename T, typename Policies>
+ struct use_terminal<karma::domain
+ , tag::stateful_tag<Policies, tag::double_, T> >
       : mpl::true_ {};
 
- template <typename T, typename Policy, typename A0>
+ template <typename T, typename Policies, typename A0>
     struct use_terminal<karma::domain
- , terminal_ex<tag::real_tag<T, Policy>, fusion::vector1<A0> >
- > : mpl::true_ {};
+ , terminal_ex<tag::stateful_tag<Policies, tag::double_, T>
+ , fusion::vector1<A0> > >
+ : mpl::true_ {};
 
     // enables *lazy* custom real generator
- template <typename T, typename Policy>
+ template <typename T, typename Policies>
     struct use_lazy_terminal<
         karma::domain
- , tag::real_tag<T, Policy>
+ , tag::stateful_tag<Policies, tag::double_, T>
       , 1 // arity
> : mpl::true_ {};
 
@@ -173,8 +171,11 @@
         bool generate(OutputIterator& sink, Context&, Delimiter const& d
           , Attribute const& attr) const
         {
+ if (!traits::has_optional_value(attr))
+ return false; // fail if it's an uninitialized optional
+
             typedef real_inserter<T, Policies, CharEncoding, Tag> inserter_type;
- return inserter_type::call(sink, attr, p_) &&
+ return inserter_type::call(sink, traits::extract_from(attr), p_) &&
                    karma::delimit_out(sink, d); // always do post-delimiting
         }
 
@@ -227,8 +228,11 @@
         bool generate(OutputIterator& sink, Context&, Delimiter const& d
           , Attribute const& attr) const
         {
- if (n_ != attr)
+ if (!traits::has_optional_value(attr) ||
+ n_ != traits::extract_from(attr))
+ {
                 return false;
+ }
 
             typedef real_inserter<T, Policies, CharEncoding, Tag> inserter_type;
             return inserter_type::call(sink, n_, p_) &&
@@ -257,112 +261,107 @@
     };
 
     ///////////////////////////////////////////////////////////////////////////
- namespace detail
- {
- // extract policies if this is a real_tag
- template <typename Policies>
- struct get_policies
- {
- template <typename Tag>
- static Policies call(Tag) { return Policies(); }
-
- template <typename T>
- static Policies const& call(tag::real_tag<T, Policies> const& p)
- { return p.policies_; }
- };
- }
-
- ///////////////////////////////////////////////////////////////////////////
     // Generator generators: make_xxx function (objects)
     ///////////////////////////////////////////////////////////////////////////
- template <
- typename T, typename Modifiers, typename Policies = real_policies<T> >
- struct make_real
+ namespace detail
     {
- static bool const lower =
- has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
- static bool const upper =
- has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
-
- typedef any_real_generator<
- T, Policies
- , typename spirit::detail::get_encoding<
- Modifiers, unused_type, lower || upper>::type
- , typename detail::get_casetag<Modifiers, lower || upper>::type
- > result_type;
-
- template <typename Terminal>
- result_type operator()(Terminal const& term, unused_type) const
+ template <typename T, typename Modifiers
+ , typename Policies = real_policies<T> >
+ struct make_real
         {
- using karma::detail::get_policies;
- return result_type(get_policies<Policies>::call(term));
- }
- };
+ static bool const lower =
+ has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
+ static bool const upper =
+ has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
+
+ typedef any_real_generator<
+ T, Policies
+ , typename spirit::detail::get_encoding<
+ Modifiers, unused_type, lower || upper>::type
+ , typename detail::get_casetag<Modifiers, lower || upper>::type
+ > result_type;
+
+ template <typename Terminal>
+ result_type operator()(Terminal const& term, unused_type) const
+ {
+ typedef tag::stateful_tag<Policies, tag::double_, T> tag_type;
+ using spirit::detail::get_stateful_data;
+ return result_type(get_stateful_data<tag_type>::call(term));
+ }
+ };
+ }
 
     template <typename Modifiers>
     struct make_primitive<tag::float_, Modifiers>
- : make_real<float, Modifiers> {};
+ : detail::make_real<float, Modifiers> {};
 
     template <typename Modifiers>
     struct make_primitive<tag::double_, Modifiers>
- : make_real<double, Modifiers> {};
+ : detail::make_real<double, Modifiers> {};
 
     template <typename Modifiers>
     struct make_primitive<tag::long_double, Modifiers>
- : make_real<long double, Modifiers> {};
+ : detail::make_real<long double, Modifiers> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename T, typename Policy, typename Modifiers>
- struct make_primitive<tag::real_tag<T, Policy>, Modifiers>
- : make_real<T, Modifiers, Policy> {};
+ template <typename T, typename Policies, typename Modifiers>
+ struct make_primitive<
+ tag::stateful_tag<Policies, tag::double_, T>, Modifiers>
+ : detail::make_real<T, Modifiers, Policies> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <
- typename T, typename Modifiers, typename Policies = real_policies<T> >
- struct make_real_direct
+ namespace detail
     {
- static bool const lower =
- has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
- static bool const upper =
- has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
-
- typedef literal_real_generator<
- T, Policies
- , typename spirit::detail::get_encoding<
- Modifiers, unused_type, lower || upper>::type
- , typename detail::get_casetag<Modifiers, lower || upper>::type
- , false
- > result_type;
-
- template <typename Terminal>
- result_type operator()(Terminal const& term, unused_type) const
+ template <typename T, typename Modifiers
+ , typename Policies = real_policies<T> >
+ struct make_real_direct
         {
- return result_type(fusion::at_c<0>(term.args)
- , karma::detail::get_policies<Policies>::call(term.term));
- }
- };
+ static bool const lower =
+ has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
+ static bool const upper =
+ has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
+
+ typedef literal_real_generator<
+ T, Policies
+ , typename spirit::detail::get_encoding<
+ Modifiers, unused_type, lower || upper>::type
+ , typename detail::get_casetag<Modifiers, lower || upper>::type
+ , false
+ > result_type;
+
+ template <typename Terminal>
+ result_type operator()(Terminal const& term, unused_type) const
+ {
+ typedef tag::stateful_tag<Policies, tag::double_, T> tag_type;
+ using spirit::detail::get_stateful_data;
+ return result_type(T(fusion::at_c<0>(term.args))
+ , get_stateful_data<tag_type>::call(term.term));
+ }
+ };
+ }
 
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::float_, fusion::vector1<A0> >, Modifiers>
- : make_real_direct<float, Modifiers> {};
+ : detail::make_real_direct<float, Modifiers> {};
 
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::double_, fusion::vector1<A0> >, Modifiers>
- : make_real_direct<double, Modifiers> {};
+ : detail::make_real_direct<double, Modifiers> {};
 
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::long_double, fusion::vector1<A0> >, Modifiers>
- : make_real_direct<long double, Modifiers> {};
+ : detail::make_real_direct<long double, Modifiers> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename T, typename Policy, typename A0, typename Modifiers>
+ template <typename T, typename Policies, typename A0, typename Modifiers>
     struct make_primitive<
- terminal_ex<tag::real_tag<T, Policy>, fusion::vector1<A0> >
+ terminal_ex<tag::stateful_tag<Policies, tag::double_, T>
+ , fusion::vector1<A0> >
           , Modifiers>
- : make_real_direct<T, Modifiers, Policy> {};
+ : detail::make_real_direct<T, Modifiers, Policies> {};
 
     ///////////////////////////////////////////////////////////////////////////
     namespace detail
@@ -386,7 +385,7 @@
             template <typename T_>
             result_type operator()(T_ i, unused_type) const
             {
- return result_type(i);
+ return result_type(T(i));
             }
         };
     }

Modified: branches/release/boost/spirit/home/karma/numeric/real_policies.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/numeric/real_policies.hpp (original)
+++ branches/release/boost/spirit/home/karma/numeric/real_policies.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -47,7 +47,7 @@
     struct real_policies
     {
         ///////////////////////////////////////////////////////////////////////
- // Expose the data type the generator is targeted to
+ // Expose the data type the generator is targeted at
         ///////////////////////////////////////////////////////////////////////
         typedef T value_type;
 

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -16,11 +16,13 @@
 #include <boost/spirit/home/support/string_traits.hpp>
 #include <boost/spirit/home/support/info.hpp>
 #include <boost/spirit/home/support/char_class.hpp>
+#include <boost/spirit/home/support/container.hpp>
 #include <boost/spirit/home/support/detail/get_encoding.hpp>
 #include <boost/spirit/home/karma/meta_compiler.hpp>
 #include <boost/spirit/home/karma/delimit_out.hpp>
 #include <boost/spirit/home/karma/auxiliary/lazy.hpp>
 #include <boost/spirit/home/karma/detail/get_casetag.hpp>
+#include <boost/spirit/home/karma/detail/extract_from.hpp>
 #include <boost/spirit/home/karma/domain.hpp>
 #include <boost/spirit/home/karma/numeric/detail/numeric_utils.hpp>
 #include <boost/fusion/include/at.hpp>
@@ -241,8 +243,12 @@
         generate(OutputIterator& sink, Context&, Delimiter const& d
           , Attribute const& attr)
         {
- return int_inserter<Radix, CharEncoding, Tag>::call(sink, attr) &&
- karma::delimit_out(sink, d); // always do post-delimiting
+ if (!traits::has_optional_value(attr))
+ return false; // fail if it's an uninitialized optional
+
+ return int_inserter<Radix, CharEncoding, Tag>::
+ call(sink, traits::extract_from(attr)) &&
+ delimit_out(sink, d); // always do post-delimiting
         }
 
         // this int has no Attribute attached, it needs to have been
@@ -297,11 +303,13 @@
         bool generate(OutputIterator& sink, Context&, Delimiter const& d
           , Attribute const& attr) const
         {
- if (n_ != attr)
+ if (!traits::has_optional_value(attr) ||
+ n_ != traits::extract_from(attr))
+ {
                 return false;
-
+ }
             return int_inserter<Radix, CharEncoding, Tag>::call(sink, n_) &&
- karma::delimit_out(sink, d); // always do post-delimiting
+ delimit_out(sink, d); // always do post-delimiting
         }
 
         // A uint(1U) without any associated attribute just emits its
@@ -311,7 +319,7 @@
           , unused_type) const
         {
             return int_inserter<Radix, CharEncoding, Tag>::call(sink, n_) &&
- karma::delimit_out(sink, d); // always do post-delimiting
+ delimit_out(sink, d); // always do post-delimiting
         }
 
         template <typename Context>
@@ -326,129 +334,135 @@
     ///////////////////////////////////////////////////////////////////////////
     // Generator generators: make_xxx function (objects)
     ///////////////////////////////////////////////////////////////////////////
- template <typename T, typename Modifiers, unsigned Radix = 10>
- struct make_uint
+ namespace detail
     {
- static bool const lower =
- has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
- static bool const upper =
- has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
-
- typedef any_uint_generator<
- T
- , typename spirit::detail::get_encoding<
- Modifiers, unused_type, lower || upper>::type
- , typename detail::get_casetag<Modifiers, lower || upper>::type
- , Radix
- > result_type;
-
- result_type operator()(unused_type, unused_type) const
+ template <typename T, typename Modifiers, unsigned Radix = 10>
+ struct make_uint
         {
- return result_type();
- }
- };
+ static bool const lower =
+ has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
+ static bool const upper =
+ has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
+
+ typedef any_uint_generator<
+ T
+ , typename spirit::detail::get_encoding<
+ Modifiers, unused_type, lower || upper>::type
+ , typename detail::get_casetag<Modifiers, lower || upper>::type
+ , Radix
+ > result_type;
+
+ result_type operator()(unused_type, unused_type) const
+ {
+ return result_type();
+ }
+ };
+ }
 
     ///////////////////////////////////////////////////////////////////////////
     template <typename Modifiers>
     struct make_primitive<tag::ushort_, Modifiers>
- : make_uint<unsigned short, Modifiers> {};
+ : detail::make_uint<unsigned short, Modifiers> {};
 
     template <typename Modifiers>
     struct make_primitive<tag::uint_, Modifiers>
- : make_uint<unsigned int, Modifiers> {};
+ : detail::make_uint<unsigned int, Modifiers> {};
 
     template <typename Modifiers>
     struct make_primitive<tag::ulong_, Modifiers>
- : make_uint<unsigned long, Modifiers> {};
+ : detail::make_uint<unsigned long, Modifiers> {};
 
     template <typename Modifiers>
     struct make_primitive<tag::bin, Modifiers>
- : make_uint<unsigned, Modifiers, 2> {};
+ : detail::make_uint<unsigned, Modifiers, 2> {};
 
     template <typename Modifiers>
     struct make_primitive<tag::oct, Modifiers>
- : make_uint<unsigned, Modifiers, 8> {};
+ : detail::make_uint<unsigned, Modifiers, 8> {};
 
     template <typename Modifiers>
     struct make_primitive<tag::hex, Modifiers>
- : make_uint<unsigned, Modifiers, 16> {};
+ : detail::make_uint<unsigned, Modifiers, 16> {};
 
 #ifdef BOOST_HAS_LONG_LONG
     template <typename Modifiers>
     struct make_primitive<tag::ulong_long, Modifiers>
- : make_uint<boost::ulong_long_type, Modifiers> {};
+ : detail::make_uint<boost::ulong_long_type, Modifiers> {};
 #endif
 
     template <typename T, unsigned Radix, typename Modifiers>
     struct make_primitive<tag::uint_tag<T, Radix>, Modifiers>
- : make_uint<T, Modifiers, Radix> {};
+ : detail::make_uint<T, Modifiers, Radix> {};
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename T, typename Modifiers, unsigned Radix = 10>
- struct make_uint_direct
+ namespace detail
     {
- static bool const lower =
- has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
- static bool const upper =
- has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
-
- typedef literal_uint_generator<
- T
- , typename spirit::detail::get_encoding<
- Modifiers, unused_type, lower || upper>::type
- , typename detail::get_casetag<Modifiers, lower || upper>::type
- , Radix, false
- > result_type;
-
- template <typename Terminal>
- result_type operator()(Terminal const& term, unused_type) const
+ template <typename T, typename Modifiers, unsigned Radix = 10>
+ struct make_uint_direct
         {
- return result_type(fusion::at_c<0>(term.args));
- }
- };
+ static bool const lower =
+ has_modifier<Modifiers, tag::char_code_base<tag::lower> >::value;
+ static bool const upper =
+ has_modifier<Modifiers, tag::char_code_base<tag::upper> >::value;
+
+ typedef literal_uint_generator<
+ T
+ , typename spirit::detail::get_encoding<
+ Modifiers, unused_type, lower || upper>::type
+ , typename detail::get_casetag<Modifiers, lower || upper>::type
+ , Radix, 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 Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::ushort_, fusion::vector1<A0> >, Modifiers>
- : make_uint_direct<unsigned short, Modifiers> {};
+ : detail::make_uint_direct<unsigned short, Modifiers> {};
 
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::uint_, fusion::vector1<A0> >, Modifiers>
- : make_uint_direct<unsigned int, Modifiers> {};
+ : detail::make_uint_direct<unsigned int, Modifiers> {};
 
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::ulong_, fusion::vector1<A0> >, Modifiers>
- : make_uint_direct<unsigned long, Modifiers> {};
+ : detail::make_uint_direct<unsigned long, Modifiers> {};
 
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::bin, fusion::vector1<A0> >, Modifiers>
- : make_uint_direct<unsigned, Modifiers, 2> {};
+ : detail::make_uint_direct<unsigned, Modifiers, 2> {};
 
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::oct, fusion::vector1<A0> >, Modifiers>
- : make_uint_direct<unsigned, Modifiers, 8> {};
+ : detail::make_uint_direct<unsigned, Modifiers, 8> {};
 
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::hex, fusion::vector1<A0> >, Modifiers>
- : make_uint_direct<unsigned, Modifiers, 16> {};
+ : detail::make_uint_direct<unsigned, Modifiers, 16> {};
 
 #ifdef BOOST_HAS_LONG_LONG
     template <typename Modifiers, typename A0>
     struct make_primitive<
         terminal_ex<tag::ulong_long, fusion::vector1<A0> >, Modifiers>
- : make_uint_direct<boost::ulong_long_type, Modifiers> {};
+ : detail::make_uint_direct<boost::ulong_long_type, Modifiers> {};
 #endif
 
     template <typename T, unsigned Radix, typename A0, typename Modifiers>
     struct make_primitive<
         terminal_ex<tag::uint_tag<T, Radix>, fusion::vector1<A0> >
           , Modifiers>
- : make_uint_direct<T, Modifiers, Radix> {};
+ : detail::make_uint_direct<T, Modifiers, Radix> {};
 
     namespace detail
     {

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -137,4 +137,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Elements>
+ struct has_semantic_action<karma::alternative<Elements> >
+ : nary_has_semantic_action<Elements> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -78,4 +78,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<karma::and_predicate<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -61,7 +61,7 @@
         bool generate(OutputIterator& sink, Context& ctx
           , Delimiter const& d, Attribute const& attr) const
         {
- typedef typename traits::result_of::iterator<
+ typedef typename traits::container_iterator<
                 typename add_const<Attribute>::type
>::type iterator_type;
 
@@ -69,10 +69,13 @@
             iterator_type end = traits::end(attr);
 
             // kleene fails only if the underlying output fails
- bool result = true;
- for (/**/; result && !traits::compare(it, end); traits::next(it))
+ for (/**/; detail::sink_is_good(sink) && !traits::compare(it, end);
+ traits::next(it))
             {
- result = subject.generate(sink, ctx, d, traits::deref(it));
+ // Ignore return value, failing subject generators are just
+ // skipped. This allows to selectively generate items in the
+ // provided attribute.
+ subject.generate(sink, ctx, d, traits::deref(it));
             }
             return detail::sink_is_good(sink);
         }
@@ -96,4 +99,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<karma::kleene<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #endif

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -1,5 +1,5 @@
-// Copyright (c) 2001-2009 Joel de Guzman
 // Copyright (c) 2001-2009 Hartmut Kaiser
+// Copyright (c) 2001-2009 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)
@@ -36,11 +36,33 @@
     template <typename Left, typename Right>
     struct list : binary_generator<list<Left, Right> >
     {
+ private:
+ // iterate over the given container until its exhausted or the embedded
+ // (left) generator succeeds
+ template <
+ typename OutputIterator, typename Context, typename Delimiter
+ , typename Iterator>
+ bool generate_left(OutputIterator& sink, Context& ctx
+ , Delimiter const& d, Iterator& it, Iterator& end) const
+ {
+ while (!traits::compare(it, end))
+ {
+ if (left.generate(sink, ctx, d, traits::deref(it)))
+ return true;
+ traits::next(it);
+ }
+ return false;
+ }
+
+ public:
         typedef Left left_type;
         typedef Right right_type;
 
         typedef mpl::int_<
- left_type::properties::value | right_type::properties::value
+ left_type::properties::value
+ | right_type::properties::value
+ | generator_properties::buffering
+ | generator_properties::counting
> properties;
 
         // Build a std::vector from the LHS's attribute. Note
@@ -49,12 +71,12 @@
         template <typename Context, typename Iterator>
         struct attribute
           : traits::build_std_vector<
- typename traits::attribute_of<Left, Context, Iterator>::type
- >
+ typename traits::attribute_of<Left, Context, Iterator>::type>
         {};
 
         list(Left const& left, Right const& right)
- : left(left), right(right) {}
+ : left(left), right(right)
+ {}
 
         template <
             typename OutputIterator, typename Context, typename Delimiter
@@ -62,23 +84,31 @@
         bool generate(OutputIterator& sink, Context& ctx
           , Delimiter const& d, Attribute const& attr) const
         {
- typedef typename traits::result_of::iterator<
+ typedef typename traits::container_iterator<
                 typename add_const<Attribute>::type
>::type iterator_type;
 
             iterator_type it = traits::begin(attr);
             iterator_type end = traits::end(attr);
 
- bool result = !traits::compare(it, end);
- if (result && left.generate(sink, ctx, d, traits::deref(it)))
+ if (generate_left(sink, ctx, d, it, end))
             {
- for (traits::next(it); result && !traits::compare(it, end);
- traits::next(it))
+ for (traits::next(it); !traits::compare(it, end); traits::next(it))
                 {
- result = right.generate(sink, ctx, d, unused) &&
- left.generate(sink, ctx, d, traits::deref(it));
+ // wrap the given output iterator as generate_left might fail
+ detail::enable_buffering<OutputIterator> buffering(sink);
+ {
+ detail::disable_counting<OutputIterator> nocounting(sink);
+
+ if (!right.generate(sink, ctx, d, unused))
+ return false; // shouldn't happen
+
+ if (!generate_left(sink, ctx, d, it, end))
+ break; // return true as one item succeeded
+ }
+ buffering.buffer_copy();
                 }
- return result;
+ return true;
             }
             return false;
         }
@@ -104,4 +134,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Left, typename Right>
+ struct has_semantic_action<karma::list<Left, Right> >
+ : binary_has_semantic_action<Left, Right> {};
+
+}}}
+
 #endif

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -79,4 +79,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<karma::not_predicate<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -17,6 +17,7 @@
 #include <boost/spirit/home/support/info.hpp>
 #include <boost/spirit/home/support/unused.hpp>
 #include <boost/spirit/home/support/attributes.hpp>
+#include <boost/spirit/home/support/container.hpp>
 #include <boost/mpl/assert.hpp>
 #include <boost/optional.hpp>
 #include <boost/type_traits/is_convertible.hpp>
@@ -35,51 +36,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 namespace boost { namespace spirit { namespace karma
 {
- namespace detail
- {
- ///////////////////////////////////////////////////////////////////////
- template <typename Attribute>
- inline bool
- optional_is_valid(boost::optional<Attribute> const& opt)
- {
- return opt;
- }
-
- template <typename Attribute>
- inline bool
- optional_is_valid(Attribute const& opt)
- {
- return true;
- }
-
- inline bool
- optional_is_valid(unused_type)
- {
- return true;
- }
-
- ///////////////////////////////////////////////////////////////////////
- template <typename Attribute>
- inline Attribute const&
- optional_get(boost::optional<Attribute> const& opt)
- {
- return get(opt);
- }
-
- template <typename Attribute>
- inline Attribute const&
- optional_get(Attribute const& opt)
- {
- return opt;
- }
-
- inline unused_type
- optional_get(unused_type)
- {
- return unused;
- }
- }
-
     ///////////////////////////////////////////////////////////////////////////
     template <typename Subject>
     struct optional : unary_generator<optional<Subject> >
@@ -106,8 +62,8 @@
         bool generate(OutputIterator& sink, Context& ctx
           , Delimiter const& d, Attribute const& attr) const
         {
- if (detail::optional_is_valid(attr))
- subject.generate(sink, ctx, d, detail::optional_get(attr));
+ if (traits::has_optional_value(attr))
+ subject.generate(sink, ctx, d, traits::optional_value(attr));
             return sink_is_good(sink);
         }
 
@@ -129,4 +85,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<karma::optional<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -61,7 +61,7 @@
         bool generate(OutputIterator& sink, Context& ctx
           , Delimiter const& d, Attribute const& attr) const
         {
- typedef typename traits::result_of::iterator<
+ typedef typename traits::container_iterator<
                 typename add_const<Attribute>::type
>::type iterator_type;
 
@@ -72,13 +72,16 @@
             if (traits::compare(it, end))
                 return false;
 
- // from now on plus fails only if the underlying output fails
- bool result = true;
- for (/**/; result && !traits::compare(it, end); traits::next(it))
+ // from now on plus fails if the underlying output fails or overall
+ // no subject generators succeeded
+ bool result = false;
+ for (/**/; detail::sink_is_good(sink) && !traits::compare(it, end);
+ traits::next(it))
             {
- result = subject.generate(sink, ctx, d, traits::deref(it));
+ if (subject.generate(sink, ctx, d, traits::deref(it)))
+ result = true;
             }
- return detail::sink_is_good(sink);
+ return result && detail::sink_is_good(sink);
         }
 
         template <typename Context>
@@ -101,4 +104,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<karma::plus<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -191,4 +191,12 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Elements>
+ struct has_semantic_action<karma::sequence<Elements> >
+ : nary_has_semantic_action<Elements> {};
+
+}}}
+
 #endif

Modified: branches/release/boost/spirit/home/karma/stream/stream.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/stream/stream.hpp (original)
+++ branches/release/boost/spirit/home/karma/stream/stream.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -12,6 +12,7 @@
 
 #include <boost/spirit/home/support/common_terminals.hpp>
 #include <boost/spirit/home/support/info.hpp>
+#include <boost/spirit/home/support/container.hpp>
 #include <boost/spirit/home/support/detail/hold_any.hpp>
 #include <boost/spirit/home/support/detail/get_encoding.hpp>
 #include <boost/spirit/home/karma/domain.hpp>
@@ -21,6 +22,7 @@
 #include <boost/spirit/home/karma/stream/detail/format_manip.hpp>
 #include <boost/spirit/home/karma/stream/detail/iterator_sink.hpp>
 #include <boost/spirit/home/karma/detail/get_casetag.hpp>
+#include <boost/spirit/home/karma/detail/extract_from.hpp>
 #include <boost/fusion/include/at.hpp>
 #include <boost/fusion/include/vector.hpp>
 #include <boost/fusion/include/cons.hpp>
@@ -126,9 +128,12 @@
                 OutputIterator, Char, CharEncoding, Tag
> sink_device;
 
+ if (!traits::has_optional_value(attr))
+ return false;
+
             // use existing operator<<()
             boost::iostreams::stream<sink_device> ostr(sink);
- ostr << attr << std::flush;
+ ostr << traits::extract_from(attr) << std::flush;
 
             if (ostr.good())
                 return karma::delimit_out(sink, d); // always do post-delimiting
@@ -153,10 +158,13 @@
                 output_iterator, Char, CharEncoding, Tag
> sink_device;
 
+ if (!traits::has_optional_value(attr))
+ return false;
+
             // use existing operator<<()
             boost::iostreams::stream<sink_device> ostr(sink);
             ostr.imbue(sink.get_ostream().getloc());
- ostr << attr << std::flush;
+ ostr << traits::extract_from(attr) << std::flush;
 
             if (ostr.good())
                 return karma::delimit_out(sink, d); // always do post-delimiting

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -14,12 +14,14 @@
 #include <boost/spirit/home/support/string_traits.hpp>
 #include <boost/spirit/home/support/info.hpp>
 #include <boost/spirit/home/support/char_class.hpp>
+#include <boost/spirit/home/support/container.hpp>
 #include <boost/spirit/home/support/detail/get_encoding.hpp>
 #include <boost/spirit/home/karma/domain.hpp>
 #include <boost/spirit/home/karma/meta_compiler.hpp>
 #include <boost/spirit/home/karma/delimit_out.hpp>
 #include <boost/spirit/home/karma/auxiliary/lazy.hpp>
 #include <boost/spirit/home/karma/detail/get_casetag.hpp>
+#include <boost/spirit/home/karma/detail/extract_from.hpp>
 #include <boost/spirit/home/karma/detail/string_generate.hpp>
 #include <boost/spirit/home/karma/detail/string_compare.hpp>
 #include <boost/fusion/include/at.hpp>
@@ -83,16 +85,18 @@
         };
 
         // lit has an attached attribute
- template <
- typename OutputIterator, typename Context,
- typename Delimiter, typename Attribute
- >
+ template <typename OutputIterator, typename Context, typename Delimiter
+ , typename Attribute>
         static bool
         generate(OutputIterator& sink, Context& /*ctx*/, Delimiter const& d,
             Attribute const& attr)
         {
+ if (!traits::has_optional_value(attr))
+ return false;
+
             return
- karma::detail::string_generate(sink, attr, char_encoding(), Tag()) &&
+ karma::detail::string_generate(sink
+ , traits::extract_from(attr), char_encoding(), Tag()) &&
                 karma::delimit_out(sink, d); // always do post-delimiting
         }
 
@@ -148,10 +152,14 @@
         bool generate(OutputIterator& sink, Context&, Delimiter const& d
           , Attribute const& attr) const
         {
- // fail if attribute isn't matched my immediate literal
+ if (!traits::has_optional_value(attr))
+ return false;
+
+ // fail if attribute isn't matched by immediate literal
             using spirit::traits::get_c_string;
- if (!detail::string_compare(get_c_string(attr), get_c_string(str_)
- , char_encoding(), Tag()))
+ if (!detail::string_compare(
+ get_c_string(traits::extract_from(attr))
+ , get_c_string(str_), char_encoding(), Tag()))
             {
                 return false;
             }
@@ -178,63 +186,6 @@
         string_type str_;
     };
 
- template <typename String, typename Tag, bool no_attribute>
- struct literal_string<String, unused_type, Tag, no_attribute>
- : primitive_generator<literal_string<String, unused_type, Tag, no_attribute> >
- {
- typedef typename
- remove_const<typename traits::char_type_of<String>::type>::type
- char_type;
- typedef std::basic_string<char_type> string_type;
-
- template <typename Context, typename Unused>
- struct attribute
- {
- typedef typename mpl::if_c<
- no_attribute, unused_type, string_type>::type
- type;
- };
-
- literal_string(typename add_reference<String>::type str)
- : str_(str) {}
-
- // A string("...") which additionally has an associated attribute emits
- // its immediate literal only if it matches the attribute, otherwise
- // it fails.
- template <
- typename OutputIterator, typename Context, typename Delimiter
- , typename Attribute>
- bool generate(OutputIterator& sink, Context&, Delimiter const& d
- , Attribute const& attr) const
- {
- // fail if attribute isn't matched my immediate literal
- using spirit::traits::get_c_string;
- if (!detail::string_compare(get_c_string(attr), get_c_string(str_)))
- return false;
-
- return detail::string_generate(sink, str_) &&
- karma::delimit_out(sink, d); // always do post-delimiting
- }
-
- // A string("...") without any associated attribute just emits its
- // immediate literal
- template <typename OutputIterator, typename Context, typename Delimiter>
- bool generate(OutputIterator& sink, Context&, Delimiter const& d
- , unused_type) const
- {
- return detail::string_generate(sink, str_) &&
- karma::delimit_out(sink, d); // always do post-delimiting
- }
-
- template <typename Context>
- info what(Context const& ctx) const
- {
- return info("literal-string", str_);
- }
-
- string_type str_;
- };
-
     ///////////////////////////////////////////////////////////////////////////
     // Generator generators: make_xxx function (objects)
     ///////////////////////////////////////////////////////////////////////////

Modified: branches/release/boost/spirit/home/lex/lexer/char_token_def.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/char_token_def.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/char_token_def.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -49,7 +49,11 @@
 
 namespace boost { namespace spirit { namespace lex
 {
- using spirit::lit; // lit('x') is equivalent to 'x'
+ using spirit::lit; // lit('x') is equivalent to 'x'
+
+ // use char_ from standard character set by default
+ using spirit::standard::char_type;
+ using spirit::standard::char_;
 
     ///////////////////////////////////////////////////////////////////////////
     //
@@ -57,7 +61,7 @@
     // represents a single character token definition
     //
     ///////////////////////////////////////////////////////////////////////////
- template <typename CharEncoding>
+ template <typename CharEncoding = char_encoding::standard>
     struct char_token_def
       : primitive_lexer<char_token_def<CharEncoding> >
     {

Modified: branches/release/boost/spirit/home/lex/lexer/lexer.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexer.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexer.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -90,7 +90,7 @@
                     token_type &t = *first;
                     if (token_is_valid(t) && t.state() == first.get_state()) {
                     // any of the token definitions matched
- qi::detail::assign_to(t, attr);
+ spirit::traits::assign_to(t, attr);
                         ++first;
                         return true;
                     }

Modified: branches/release/boost/spirit/home/lex/lexer/lexertl/token.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexertl/token.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexertl/token.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -12,6 +12,7 @@
 
 #include <boost/spirit/home/qi/detail/assign_to.hpp>
 #include <boost/spirit/home/support/safe_bool.hpp>
+#include <boost/spirit/home/support/attributes.hpp>
 #include <boost/spirit/home/support/argument.hpp>
 #include <boost/spirit/home/support/detail/lexer/generator.hpp>
 #include <boost/spirit/home/support/detail/lexer/rules.hpp>
@@ -356,126 +357,156 @@
         return t ? true : false;
     }
 
+}}}}
+
+namespace boost { namespace spirit { namespace traits
+{
     ///////////////////////////////////////////////////////////////////////////
- // We have to provide overloads for the construct() function allowing
- // to extract the needed value from the token. These overloads have to be
- // defined in the same namespace as the token class itself to allow ADL to
- // find them.
+ // We have to provide specializations for the customization point
+ // assign_to_attribute_from_value allowing to extract the needed value
+ // from the token.
     ///////////////////////////////////////////////////////////////////////////
 
     // This is called from the parse function of token_def if the token_def
     // has been defined to carry a special attribute type
     template <typename Attribute, typename Iterator, typename AttributeTypes
       , typename HasState>
- inline void
- construct(Attribute& attr, token<Iterator, AttributeTypes, HasState>& t)
+ struct assign_to_attribute_from_value<Attribute
+ , lex::lexertl::token<Iterator, AttributeTypes, HasState> >
     {
- // The goal of this function is to avoid the conversion of the pair of
- // iterators (to the matched character sequence) into the token value
- // of the required type being done more than once. For this purpose it
- // checks whether the stored value type is still the default one (pair
- // of iterators) and if yes, replaces the pair of iterators with the
- // converted value to be returned from subsequent calls.
-
- if (0 == t.value().which()) {
- // first access to the token value
- typedef iterator_range<Iterator> iterpair_type;
- iterpair_type const& ip = get<iterpair_type>(t.value());
-
- // Interestingly enough we use the assign_to() framework defined in
- // Spirit.Qi allowing to convert the pair of iterators to almost any
- // required type (assign_to(), if available, uses the standard Spirit
- // parsers to do the conversion, and falls back to boost::lexical_cast
- // otherwise).
- qi::detail::assign_to(ip.begin(), ip.end(), attr);
-
- // If you get an error during the compilation of the following
- // assignment expression, you probably forgot to list one or more
- // types used as token value types (in your token_def<...>
- // definitions) in your definition of the token class. I.e. any token
- // value type used for a token_def<...> definition has to be listed
- // during the declaration of the token type to use. For instance let's
- // assume we have two token_def's:
- //
- // token_def<int> number; number = "...";
- // token_def<std::string> identifier; identifier = "...";
- //
- // Then you'll have to use the following token type definition
- // (assuming you are using the token class):
- //
- // typedef mpl::vector<int, std::string> token_values;
- // typedef token<base_iter_type, token_values> token_type;
- //
- // where: base_iter_type is the iterator type used to expose the
- // underlying input stream.
- //
- // This token_type has to be used as the second template parameter
- // to the lexer class:
- //
- // typedef lexer<base_iter_type, token_type> lexer_type;
- //
- // again, assuming you're using the lexer<> template for your
- // tokenization.
-
- t.value() = attr; // re-assign value
- }
- else {
- // reuse the already assigned value
- qi::detail::assign_to(get<Attribute>(t.value()), attr);
+ static void
+ call(lex::lexertl::token<Iterator, AttributeTypes, HasState> const& t
+ , Attribute& attr)
+ {
+ // The goal of this function is to avoid the conversion of the pair of
+ // iterators (to the matched character sequence) into the token value
+ // of the required type being done more than once. For this purpose it
+ // checks whether the stored value type is still the default one (pair
+ // of iterators) and if yes, replaces the pair of iterators with the
+ // converted value to be returned from subsequent calls.
+
+ if (0 == t.value().which()) {
+ // first access to the token value
+ typedef iterator_range<Iterator> iterpair_type;
+ iterpair_type const& ip = get<iterpair_type>(t.value());
+
+ // Interestingly enough we use the assign_to() framework defined in
+ // Spirit.Qi allowing to convert the pair of iterators to almost any
+ // required type (assign_to(), if available, uses the standard Spirit
+ // parsers to do the conversion, and falls back to boost::lexical_cast
+ // otherwise).
+ spirit::traits::assign_to(ip.begin(), ip.end(), attr);
+
+ // If you get an error during the compilation of the following
+ // assignment expression, you probably forgot to list one or more
+ // types used as token value types (in your token_def<...>
+ // definitions) in your definition of the token class. I.e. any token
+ // value type used for a token_def<...> definition has to be listed
+ // during the declaration of the token type to use. For instance let's
+ // assume we have two token_def's:
+ //
+ // token_def<int> number; number = "...";
+ // token_def<std::string> identifier; identifier = "...";
+ //
+ // Then you'll have to use the following token type definition
+ // (assuming you are using the token class):
+ //
+ // typedef mpl::vector<int, std::string> token_values;
+ // typedef token<base_iter_type, token_values> token_type;
+ //
+ // where: base_iter_type is the iterator type used to expose the
+ // underlying input stream.
+ //
+ // This token_type has to be used as the second template parameter
+ // to the lexer class:
+ //
+ // typedef lexer<base_iter_type, token_type> lexer_type;
+ //
+ // again, assuming you're using the lexer<> template for your
+ // tokenization.
+
+ typedef lex::lexertl::token<
+ Iterator, AttributeTypes, HasState> token_type;
+ const_cast<token_type&>(t).value() = attr; // re-assign value
+ }
+ else {
+ // reuse the already assigned value
+ spirit::traits::assign_to(get<Attribute>(t.value()), attr);
+ }
         }
- }
+ };
 
     // These are called from the parse function of token_def if the token type
     // has no special attribute type assigned
     template <typename Attribute, typename Iterator, typename HasState>
- inline void construct(Attribute& attr,
- token<Iterator, mpl::vector0<>, HasState>& t)
+ struct assign_to_attribute_from_value<
+ Attribute, lex::lexertl::token<Iterator, mpl::vector0<>, HasState> >
     {
- // The default type returned by the token_def parser component (if it
- // has no token value type assigned) is the pair of iterators to the
- // matched character sequence.
-
- qi::detail::assign_to(t.value().begin(), t.value().end(), attr);
- }
+ static void
+ call(lex::lexertl::token<Iterator, mpl::vector0<>, HasState> const& t
+ , Attribute& attr)
+ {
+ // The default type returned by the token_def parser component (if
+ // it has no token value type assigned) is the pair of iterators
+ // to the matched character sequence.
+ spirit::traits::assign_to(t.value().begin(), t.value().end(), attr);
+ }
+ };
 
     // same as above but using mpl::vector<> instead of mpl::vector0<>
     template <typename Attribute, typename Iterator, typename HasState>
- inline void construct(Attribute& attr,
- token<Iterator, mpl::vector<>, HasState>& t)
+ struct assign_to_attribute_from_value<
+ Attribute, lex::lexertl::token<Iterator, mpl::vector<>, HasState> >
     {
- // The default type returned by the token_def parser component (if it
- // has no token value type assigned) is the pair of iterators to the
- // matched character sequence.
-
- qi::detail::assign_to(t.value().begin(), t.value().end(), attr);
- }
+ static void
+ call(lex::lexertl::token<Iterator, mpl::vector<>, HasState> const& t
+ , Attribute& attr)
+ {
+ // The default type returned by the token_def parser component (if
+ // it has no token value type assigned) is the pair of iterators
+ // to the matched character sequence.
+ spirit::traits::assign_to(t.value().begin(), t.value().end(), attr);
+ }
+ };
 
     // This is called from the parse function of token_def if the token type
     // has been explicitly omitted (i.e. no attribute value is used), which
     // essentially means that every attribute gets initialized using default
     // constructed values.
     template <typename Attribute, typename Iterator, typename HasState>
- inline void
- construct(Attribute& attr, token<Iterator, lex::omit, HasState>& t) {}
+ struct assign_to_attribute_from_value<
+ Attribute, lex::lexertl::token<Iterator, lex::omit, HasState> >
+ {
+ static void
+ call(lex::lexertl::token<Iterator, lex::omit, HasState> const& t
+ , Attribute& attr)
+ {
+ // do nothing
+ }
+ };
 
     // This is called from the parse function of lexer_def_
     template <typename Iterator, typename AttributeTypes, typename HasState>
- inline void
- construct(fusion::vector2<std::size_t, iterator_range<Iterator> >& attr,
- token<Iterator, AttributeTypes, HasState> const& t)
- {
- // The type returned by the lexer_def_ parser components
- // is a fusion::vector containing the token id of the matched token
- // and the pair of iterators to the matched character sequence.
-
- typedef iterator_range<Iterator> iterpair_type;
- typedef fusion::vector2<std::size_t, iterator_range<Iterator> >
- attribute_type;
+ struct assign_to_attribute_from_value<
+ fusion::vector2<std::size_t, iterator_range<Iterator> >
+ , lex::lexertl::token<Iterator, AttributeTypes, HasState> >
+ {
+ static void
+ call(lex::lexertl::token<Iterator, AttributeTypes, HasState> const& t
+ , fusion::vector2<std::size_t, iterator_range<Iterator> >& attr)
+ {
+ // The type returned by the lexer_def_ parser components is a
+ // fusion::vector containing the token id of the matched token
+ // and the pair of iterators to the matched character sequence.
+ typedef iterator_range<Iterator> iterpair_type;
+ typedef fusion::vector2<std::size_t, iterator_range<Iterator> >
+ attribute_type;
 
- iterpair_type const& ip = get<iterpair_type>(t.value());
- attr = attribute_type(t.id(), get<iterpair_type>(t.value()));
- }
+ iterpair_type const& ip = get<iterpair_type>(t.value());
+ attr = attribute_type(t.id(), get<iterpair_type>(t.value()));
+ }
+ };
 
-}}}}
+}}}
 
 #endif

Modified: branches/release/boost/spirit/home/lex/lexer/string_token_def.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/string_token_def.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/string_token_def.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -42,13 +42,17 @@
 
 namespace boost { namespace spirit { namespace lex
 {
+ // use string from standard character set by default
+ using spirit::standard::string_type;
+ using spirit::standard::string;
+
     ///////////////////////////////////////////////////////////////////////////
     //
     // string_token_def
     // represents a string based token definition
     //
     ///////////////////////////////////////////////////////////////////////////
- template <typename String, typename CharEncoding = unused_type>
+ template <typename String, typename CharEncoding = char_encoding::standard>
     struct string_token_def
       : primitive_lexer<string_token_def<String, CharEncoding> >
     {

Modified: branches/release/boost/spirit/home/lex/lexer/token_def.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/token_def.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/token_def.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -69,7 +69,7 @@
             // or unused_type (if omit has been specified).
             typedef typename Iterator::base_iterator_type iterator_type;
             typedef typename mpl::if_<
- traits::is_not_unused<Attribute>
+ traits::not_is_unused<Attribute>
               , typename mpl::if_<
                     is_same<Attribute, lex::omit>, unused_type, Attribute
>::type
@@ -98,7 +98,7 @@
 
                 token_type &t = *first;
                 if (token_id_ == t.id() && token_state_ == t.state()) {
- qi::detail::assign_to(t, attr);
+ spirit::traits::assign_to(t, attr);
                     ++first;
                     return true;
                 }

Modified: branches/release/boost/spirit/home/lex/qi/plain_token.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/qi/plain_token.hpp (original)
+++ branches/release/boost/spirit/home/lex/qi/plain_token.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -79,10 +79,11 @@
                 typedef typename
                     boost::detail::iterator_traits<Iterator>::value_type
                 token_type;
+ typedef typename token_type::id_type id_type;
 
                 token_type &t = *first;
- if (id == t.id()) {
- qi::detail::assign_to(t, attr);
+ if (id_type(id) == t.id()) {
+ spirit::traits::assign_to(t, attr);
                     ++first;
                     return true;
                 }

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -20,6 +20,7 @@
 #include <boost/spirit/home/support/info.hpp>
 #include <boost/spirit/home/support/action_dispatch.hpp>
 
+#include <boost/mpl/bool.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/type_traits/remove_const.hpp>
 #include <boost/type_traits/is_same.hpp>
@@ -109,4 +110,12 @@
     };
 }}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject, typename Action>
+ struct has_semantic_action<qi::action<Subject, Action> >
+ : mpl::true_ {};
+
+}}}
+
 #endif

Modified: branches/release/boost/spirit/home/qi/auxiliary.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/auxiliary.hpp (original)
+++ branches/release/boost/spirit/home/qi/auxiliary.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -17,5 +17,6 @@
 #include <boost/spirit/home/qi/auxiliary/eol.hpp>
 #include <boost/spirit/home/qi/auxiliary/eoi.hpp>
 #include <boost/spirit/home/qi/auxiliary/attr.hpp>
+#include <boost/spirit/home/qi/auxiliary/attr_cast.hpp>
 
 #endif

Modified: branches/release/boost/spirit/home/qi/auxiliary/attr.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/auxiliary/attr.hpp (original)
+++ branches/release/boost/spirit/home/qi/auxiliary/attr.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -59,7 +59,7 @@
           , Context& context, Skipper const& skipper
           , Attribute& attr) const
         {
- qi::detail::assign_to(value_, attr);
+ spirit::traits::assign_to(value_, attr);
             return true; // never consume any input, succeed always
         }
 

Modified: branches/release/boost/spirit/home/qi/binary/binary.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/binary/binary.hpp (original)
+++ branches/release/boost/spirit/home/qi/binary/binary.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -193,7 +193,7 @@
             }
 
             first = it;
- detail::assign_to(attr_, attr);
+ spirit::traits::assign_to(attr_, attr);
             return true;
         }
 
@@ -244,7 +244,7 @@
             }
 
             first = it;
- detail::assign_to(attr_, attr);
+ spirit::traits::assign_to(attr_, attr);
             return true;
         }
 

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -119,9 +119,10 @@
         };
 
         template <typename CharParam, typename Context>
- bool test(CharParam ch, Context&) const
+ bool test(CharParam ch_, Context&) const
         {
- return this->ch == char_type(ch);
+ return traits::ischar<CharParam, char_encoding>::call(ch_) &&
+ ch == char_type(ch_);
         }
 
         template <typename Context>
@@ -156,9 +157,13 @@
         };
 
         template <typename CharParam, typename Context>
- bool test(CharParam ch, Context&) const
+ bool test(CharParam ch_, Context&) const
         {
- return this->lo == char_type(ch) || this->hi == char_type(ch);
+ if (!traits::ischar<CharParam, char_encoding>::call(ch_))
+ return false;
+
+ char_type ch = char_type(ch_); // optimize for token based parsing
+ return this->lo == ch || this->hi == ch;
         }
 
         template <typename Context>
@@ -184,9 +189,13 @@
           : from(from), to(to) {}
 
         template <typename CharParam, typename Context>
- bool test(CharParam ch, Context&) const
+ bool test(CharParam ch_, Context&) const
         {
- return !(char_type(ch) < from) && !(to < char_type(ch));
+ if (!traits::ischar<CharParam, char_encoding>::call(ch_))
+ return false;
+
+ char_type ch = char_type(ch_); // optimize for token based parsing
+ return !(ch < from) && !(to < ch);
         }
 
         template <typename Context>
@@ -216,10 +225,14 @@
         {}
 
         template <typename CharParam, typename Context>
- bool test(CharParam ch, Context&) const
+ bool test(CharParam ch_, Context&) const
         {
- return (!(char_type(ch) < from_lo) && !(to_lo < char_type(ch)))
- || (!(char_type(ch) < from_hi) && !(to_hi < char_type(ch)))
+ if (!traits::ischar<CharParam, char_encoding>::call(ch_))
+ return false;
+
+ char_type ch = char_type(ch_); // optimize for token based parsing
+ return (!(ch < from_lo) && !(to_lo < ch))
+ || (!(ch < from_hi) && !(to_hi < ch))
             ;
         }
 
@@ -282,7 +295,8 @@
         template <typename CharParam, typename Context>
         bool test(CharParam ch, Context&) const
         {
- return chset.test(char_type(ch));
+ return traits::ischar<CharParam, char_encoding>::call(ch) &&
+ chset.test(char_type(ch));
         }
 
         template <typename Context>
@@ -341,7 +355,8 @@
         template <typename CharParam, typename Context>
         bool test(CharParam ch, Context&) const
         {
- return chset.test(char_type(char_type(ch)));
+ return traits::ischar<CharParam, char_encoding>::call(ch) &&
+ chset.test(char_type(ch));
         }
 
         template <typename Context>

Modified: branches/release/boost/spirit/home/qi/char/char_class.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/char/char_class.hpp (original)
+++ branches/release/boost/spirit/home/qi/char/char_class.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -31,12 +31,18 @@
 
 namespace boost { namespace spirit { namespace qi
 {
- // hoist the char classification namespaces into qi sub-namespaces of the same name
+ // hoist the char classification namespaces into qi sub-namespaces of the
+ // same name
     namespace ascii { using namespace boost::spirit::ascii; }
     namespace iso8859_1 { using namespace boost::spirit::iso8859_1; }
     namespace standard { using namespace boost::spirit::standard; }
     namespace standard_wide { using namespace boost::spirit::standard_wide; }
 
+ // Import the standard namespace into the qi namespace. This allows
+ // for default handling of all character/string related operations if not
+ // prefixed with a character set namespace.
+ using namespace boost::spirit::standard;
+
     ///////////////////////////////////////////////////////////////////////////
     // Generic char classification parser (for alnum, alpha, graph, etc.)
     ///////////////////////////////////////////////////////////////////////////
@@ -51,7 +57,8 @@
         bool test(CharParam ch, Context&) const
         {
             using spirit::char_class::classify;
- return classify<char_encoding>::is(classification(), ch);
+ return traits::ischar<CharParam, char_encoding>::call(ch) &&
+ classify<char_encoding>::is(classification(), ch);
         }
 
         template <typename Context>

Modified: branches/release/boost/spirit/home/qi/char/char_parser.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/char/char_parser.hpp (original)
+++ branches/release/boost/spirit/home/qi/char/char_parser.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -67,7 +67,7 @@
 
             if (first != last && this->derived().test(*first, context))
             {
- qi::detail::assign_to(*first, attr);
+ spirit::traits::assign_to(*first, attr);
                 ++first;
                 return true;
             }

Modified: branches/release/boost/spirit/home/qi/detail/alternative_function.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/detail/alternative_function.hpp (original)
+++ branches/release/boost/spirit/home/qi/detail/alternative_function.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -12,6 +12,7 @@
 #endif
 
 #include <boost/spirit/home/qi/domain.hpp>
+#include <boost/spirit/home/qi/detail/assign_to.hpp>
 #include <boost/spirit/home/support/unused.hpp>
 #include <boost/spirit/home/support/attributes.hpp>
 #include <boost/variant.hpp>
@@ -32,33 +33,25 @@
         }
 
         template <typename Component>
- bool call(Component const& component, mpl::true_) const
+ bool operator()(Component const& component) const
         {
             // if Attribute is not a variant, then pass it as-is
             return component.parse(first, last, context, skipper, attr);
         }
 
- template <typename Component>
- bool call(Component const& component, mpl::false_) const
+ template <typename Component, typename T>
+ bool operator()(Component const& component, mpl::identity<T>) const
         {
- // if Attribute is a variant, then create an attribute for
- // the Component with its expected type.
- typename traits::attribute_of<Component, Context, Iterator>::type val;
+ // if Attribute is a variant, then create an attribute.
+ T val;
             if (component.parse(first, last, context, skipper, val))
             {
- attr = val;
+ traits::assign_to(val, attr);
                 return true;
             }
             return false;
         }
 
- template <typename Component>
- bool operator()(Component const& component) const
- {
- // return true if the parser succeeds
- return call(component, spirit::traits::not_is_variant<Attribute>());
- }
-
         Iterator& first;
         Iterator const& last;
         Context& context;

Modified: branches/release/boost/spirit/home/qi/detail/assign_to.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/detail/assign_to.hpp (original)
+++ branches/release/boost/spirit/home/qi/detail/assign_to.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -15,116 +15,87 @@
 
 #include <boost/spirit/home/qi/detail/construct.hpp>
 #include <boost/spirit/home/support/unused.hpp>
+#include <boost/spirit/home/support/attributes_fwd.hpp>
+#include <boost/spirit/home/phoenix/core/actor.hpp>
 #include <boost/ref.hpp>
 
-namespace boost { namespace spirit { namespace qi { namespace detail
+namespace boost { namespace spirit { namespace traits
 {
- namespace construct_
+ ///////////////////////////////////////////////////////////////////////////
+ // This file contains assignment utilities. The utilities provided also
+ // accept spirit's unused_type; all no-ops. Compiler optimization will
+ // easily strip these away.
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Attribute, typename Iterator, typename Enable>
+ struct assign_to_attribute_from_iterators
     {
- ///////////////////////////////////////////////////////////////////////
- // This is used to allow to overload of the attribute creation for
- // arbitrary types
- ///////////////////////////////////////////////////////////////////////
- template <typename Attribute, typename Iterator>
- inline void
- construct(Attribute& attr, Iterator const& first, Iterator const& last)
+ static void
+ call(Iterator const& first, Iterator const& last, Attribute& attr)
         {
             attr = Attribute(first, last);
         }
+ };
 
- template <typename Attribute, typename T>
- inline void
- construct(Attribute& attr, T const& val)
- {
- attr = val;
- }
-
- template <typename Attribute, typename T>
- inline void
- construct(Attribute& attr, T& val)
- {
- attr = val;
- }
-
- template <typename Attribute, typename T>
- inline void
- construct(reference_wrapper<Attribute> attr, T const& val)
+ template <typename Attribute, typename Iterator>
+ struct assign_to_attribute_from_iterators<
+ reference_wrapper<Attribute>, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last
+ , reference_wrapper<Attribute> attr)
         {
- attr = val;
- }
-
- template <typename Attribute, typename T>
- inline void
- construct(reference_wrapper<Attribute> attr, T& val)
- {
- attr = val;
+ attr = Attribute(first, last);
         }
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // This file contains assignment utilities. The utilities provided also
- // accept spirit's unused_type; all no-ops. Compiler optimization will
- // easily strip these away.
- ///////////////////////////////////////////////////////////////////////////
+ };
 
     template <typename Iterator, typename Attribute>
     inline void
     assign_to(Iterator const& first, Iterator const& last, Attribute& attr)
     {
- using namespace construct_;
- construct(attr, first, last);
+ assign_to_attribute_from_iterators<Attribute, Iterator>::
+ call(first, last, attr);
     }
 
     template <typename Iterator>
     inline void
- assign_to(Iterator const& /*first*/, Iterator const& /*last*/, unused_type)
+ assign_to(Iterator const&, Iterator const&, unused_type)
     {
     }
 
- template <typename T, typename Attribute>
- inline void
- assign_to(T const& val, Attribute& attr)
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Attribute, typename T, typename Enable>
+ struct assign_to_attribute_from_value
     {
- using namespace construct_;
- construct(attr, val);
- }
+ static void
+ call(T const& val, Attribute& attr)
+ {
+ attr = val;
+ }
+ };
 
- template <typename T, typename Attribute>
- inline void
- assign_to(T& val, Attribute& attr)
+ template <typename Attribute, typename T>
+ struct assign_to_attribute_from_value<reference_wrapper<Attribute>, T>
     {
- using namespace construct_;
- construct(attr, val);
- }
-
- template <typename T, typename Attribute>
- inline void
- assign_to(T const& val, reference_wrapper<Attribute> attr)
- {
- using namespace construct_;
- construct(attr, val);
- }
+ static void
+ call(T const& val, reference_wrapper<Attribute> attr)
+ {
+ attr = val;
+ }
+ };
 
     template <typename T, typename Attribute>
     inline void
- assign_to(T& val, reference_wrapper<Attribute> attr)
- {
- using namespace construct_;
- construct(attr, val);
- }
-
- template <typename T>
- inline void
- assign_to(T const& /*val*/, unused_type)
+ assign_to(T const& val, Attribute& attr)
     {
+ assign_to_attribute_from_value<Attribute, T>::call(val, attr);
     }
 
     template <typename T>
     inline void
- assign_to(T& /*val*/, unused_type)
+ assign_to(T const&, unused_type)
     {
     }
 
-}}}}
+}}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/detail/construct.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/detail/construct.hpp (original)
+++ branches/release/boost/spirit/home/qi/detail/construct.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -12,135 +12,171 @@
 #pragma once
 #endif
 
+#include <boost/config.hpp>
 #include <boost/spirit/home/qi/parse.hpp>
 #include <boost/spirit/home/support/common_terminals.hpp>
+#include <boost/spirit/home/support/attributes_fwd.hpp>
 
-namespace boost { namespace spirit { namespace qi { namespace detail
+namespace boost { namespace spirit { namespace traits
 {
- namespace construct_
+ ///////////////////////////////////////////////////////////////////////////
+ // We provide overloads for the assign_to_attribute_from_iterators
+ // customization point for all built in types
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<char, Iterator>
     {
- ///////////////////////////////////////////////////////////////////////
- // We provide overloads for the construct customization point for all
- // built in types
- ///////////////////////////////////////////////////////////////////////
- template <typename Iterator>
- inline void
- construct(char& attr, Iterator const& first, Iterator const& last)
+ static void
+ call(Iterator const& first, Iterator const& last, char& attr)
         {
             attr = *first;
         }
+ };
 
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
- // wchar_t is intrinsic
- template <typename Iterator>
- inline void
- construct(wchar_t& attr, Iterator const& first, Iterator const& last)
+ // wchar_t is intrinsic
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<wchar_t, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, wchar_t& attr)
         {
             attr = *first;
         }
- template <typename Iterator>
- inline void
- construct(unsigned short& attr, Iterator const& first,
- Iterator const& last)
- {
- Iterator first_ = first;
- parse(first_, last, ushort_, attr);
- }
-#else
- // is wchar_t is not an intrinsic type, treat wchar_t only
- template <typename Iterator>
- inline void
- construct(wchar_t& attr, Iterator const& first, Iterator const& last)
+ };
+
+#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
+ // wchar_t is intrinsic, have separate overload for unsigned short
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<unsigned short, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, unsigned short& attr)
         {
             attr = *first;
         }
+ };
 #endif
 
- template <typename Iterator>
- inline void
- construct(short& attr, Iterator const& first, Iterator const& last)
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<bool, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, char& attr)
+ {
+ Iterator first_ = first;
+ qi::parse(first_, last, bool_, attr);
+ }
+ };
+
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<short, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, short& attr)
         {
             Iterator first_ = first;
- parse(first_, last, short_, attr);
+ qi::parse(first_, last, short_, attr);
         }
+ };
 
- template <typename Iterator>
- inline void
- construct(int& attr, Iterator const& first, Iterator const& last)
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<int, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, int& attr)
         {
             Iterator first_ = first;
- parse(first_, last, int_, attr);
+ qi::parse(first_, last, int_, attr);
         }
- template <typename Iterator>
- inline void
- construct(unsigned int& attr, Iterator const& first,
- Iterator const& last)
+ };
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<unsigned int, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, unsigned int& attr)
         {
             Iterator first_ = first;
- parse(first_, last, uint_, attr);
+ qi::parse(first_, last, uint_, attr);
         }
+ };
 
- template <typename Iterator>
- inline void
- construct(long& attr, Iterator const& first, Iterator const& last)
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<long, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, long& attr)
         {
             Iterator first_ = first;
- parse(first_, last, long_, attr);
+ qi::parse(first_, last, long_, attr);
         }
- template <typename Iterator>
- inline void
- construct(unsigned long& attr, Iterator const& first,
- Iterator const& last)
+ };
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<unsigned long, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, unsigned long& attr)
         {
             Iterator first_ = first;
- parse(first_, last, ulong_, attr);
+ qi::parse(first_, last, ulong_, attr);
         }
+ };
 
 #ifdef BOOST_HAS_LONG_LONG
- template <typename Iterator>
- inline void
- construct(boost::long_long_type& attr, Iterator const& first,
- Iterator const& last)
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<long_long_type, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, long_long_type& attr)
         {
             Iterator first_ = first;
- parse(first_, last, long_long, attr);
+ qi::parse(first_, last, long_long, attr);
         }
- template <typename Iterator>
- inline void
- construct(boost::ulong_long_type& attr, Iterator const& first,
- Iterator const& last)
+ };
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<ulong_long_type, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, ulong_long_type& attr)
         {
             Iterator first_ = first;
- parse(first_, last, ulong_long, attr);
+ qi::parse(first_, last, ulong_long, attr);
         }
+ };
 #endif
 
- template <typename Iterator>
- inline void
- construct(float& attr, Iterator const& first, Iterator const& last)
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<float, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, float& attr)
         {
             Iterator first_ = first;
- parse(first_, last, float_, attr);
+ qi::parse(first_, last, float_, attr);
         }
+ };
 
- template <typename Iterator>
- inline void
- construct(double& attr, Iterator const& first, Iterator const& last)
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<double, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, double& attr)
         {
             Iterator first_ = first;
- parse(first_, last, double_, attr);
+ qi::parse(first_, last, double_, attr);
         }
+ };
 
- template <typename Iterator>
- inline void
- construct(long double& attr, Iterator const& first,
- Iterator const& last)
+ template <typename Iterator>
+ struct assign_to_attribute_from_iterators<long double, Iterator>
+ {
+ static void
+ call(Iterator const& first, Iterator const& last, long double& attr)
         {
             Iterator first_ = first;
- parse(first_, last, long_double, attr);
+ qi::parse(first_, last, long_double, attr);
         }
- }
+ };
 
-}}}}
+}}}
 
 #endif

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -67,8 +67,8 @@
         bool dispatch_attribute_element(Component const& component, mpl::false_) const
         {
             // synthesized attribute needs to be default constructed
- typename traits::result_of::value<Attr>::type val =
- typename traits::result_of::value<Attr>::type();
+ typename traits::container_value<Attr>::type val =
+ typename traits::container_value<Attr>::type();
 
             bool r = f(component, val);
             if (!r)
@@ -121,7 +121,7 @@
             // we need to dispatch again depending on the type of the attribute
             // of the current element (component). If this is has no attribute
             // we shouldn't push an element into the container.
- typedef traits::is_not_unused<
+ typedef traits::not_is_unused<
                 typename traits::attribute_of<
                     Component, context_type, iterator_type
>::type
@@ -144,7 +144,7 @@
         template <typename Component>
         bool operator()(Component const& component) const
         {
- typedef typename traits::result_of::value<Attr>::type lhs;
+ typedef typename traits::container_value<Attr>::type lhs;
             typedef typename traits::attribute_of<
                 Component, context_type, iterator_type>::type
             rhs_attribute;

Modified: branches/release/boost/spirit/home/qi/detail/string_parse.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/detail/string_parse.hpp (original)
+++ branches/release/boost/spirit/home/qi/detail/string_parse.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -30,7 +30,7 @@
             ch = *++str;
         }
 
- detail::assign_to(first, i, attr);
+ spirit::traits::assign_to(first, i, attr);
         first = i;
         return true;
     }
@@ -47,7 +47,7 @@
         for (; stri != str_last; ++stri, ++i)
             if (i == last || (*stri != *i))
                 return false;
- detail::assign_to(first, i, attr);
+ spirit::traits::assign_to(first, i, attr);
         first = i;
         return true;
     }
@@ -62,7 +62,7 @@
         for (; *uc_i && *lc_i; ++uc_i, ++lc_i, ++i)
             if (i == last || ((*uc_i != *i) && (*lc_i != *i)))
                 return false;
- detail::assign_to(first, i, attr);
+ spirit::traits::assign_to(first, i, attr);
         first = i;
         return true;
     }
@@ -80,7 +80,7 @@
         for (; uc_i != uc_last; ++uc_i, ++lc_i, ++i)
             if (i == last || ((*uc_i != *i) && (*lc_i != *i)))
                 return false;
- detail::assign_to(first, i, attr);
+ spirit::traits::assign_to(first, i, attr);
         first = i;
         return true;
     }

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -85,4 +85,11 @@
     };
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<qi::lexeme_directive<Subject> >
+ : unary_has_semantic_action<Subject> {};
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -82,4 +82,11 @@
     };
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<qi::omit_directive<Subject> >
+ : mpl::false_ {};
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -58,7 +58,7 @@
             Iterator i = first;
             if (subject.parse(i, last, context, skipper, unused))
             {
- detail::assign_to(first, i, attr);
+ spirit::traits::assign_to(first, i, attr);
                 first = i;
                 return true;
             }
@@ -89,4 +89,11 @@
     };
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<qi::raw_directive<Subject> >
+ : unary_has_semantic_action<Subject> {};
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -143,7 +143,7 @@
           , Attribute& attr) const
         {
             // create a local value if Attribute is not unused_type
- typedef typename traits::result_of::value<Attribute>::type
+ typedef typename traits::container_value<Attribute>::type
                 value_type;
             value_type val = value_type();
             typename LoopIter::type i = iter.start();
@@ -254,4 +254,11 @@
     };
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject, typename LoopIter>
+ struct has_semantic_action<qi::repeat_parser<Subject, LoopIter> >
+ : unary_has_semantic_action<Subject> {};
+}}}
+
 #endif

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -158,4 +158,15 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<qi::reskip_parser<Subject> >
+ : unary_has_semantic_action<Subject> {};
+
+ template <typename Subject, typename Skipper>
+ struct has_semantic_action<qi::skip_parser<Subject, Skipper> >
+ : unary_has_semantic_action<Subject> {};
+}}}
+
 #endif

Modified: branches/release/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp (original)
+++ branches/release/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -13,6 +13,7 @@
 
 #include <boost/fusion/include/at.hpp>
 #include <boost/mpl/bool.hpp>
+#include <boost/spirit/home/support/has_semantic_action.hpp>
 
 namespace boost { namespace spirit { namespace qi { namespace detail
 {
@@ -24,12 +25,32 @@
           : p(p) {}
 
         template <typename Iterator, typename Skipper, typename Context>
+ bool call(Iterator& first, Iterator const& last
+ , Context& context, Skipper const& skipper, mpl::true_) const
+ {
+ // If DeducedAuto is false (semantic actions is present), the
+ // component's attribute is unused.
+ return p.parse(first, last, context, skipper, unused);
+ }
+
+ template <typename Iterator, typename Skipper, typename Context>
+ bool call(Iterator& first, Iterator const& last
+ , Context& context, Skipper const& skipper, mpl::false_) const
+ {
+ // If DeducedAuto is true (no semantic action), we pass the rule's
+ // attribute on to the component.
+ return p.parse(first, last, context, skipper
+ , fusion::at_c<0>(context.attributes));
+ }
+
+ template <typename Iterator, typename Skipper, typename Context>
         bool operator()(
             Iterator& first, Iterator const& last
           , Context& context, Skipper const& skipper) const
         {
- // If Auto is false, the component's attribute is unused.
- return p.parse(first, last, context, skipper, unused);
+ // If Auto is false, we need to deduce whether to apply auto rule
+ typedef typename traits::has_semantic_action<Parser>::type auto_rule;
+ return call(first, last, context, skipper, auto_rule());
         }
 
         Parser p;

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -13,6 +13,7 @@
 
 #include <boost/spirit/home/support/unused.hpp>
 #include <boost/spirit/home/support/info.hpp>
+#include <boost/spirit/home/support/assert_msg.hpp>
 #include <boost/spirit/home/qi/domain.hpp>
 #include <boost/spirit/home/qi/nonterminal/rule.hpp>
 #include <boost/spirit/home/qi/reference.hpp>
@@ -54,6 +55,20 @@
         , name_(name_)
         {}
 
+ // This constructor is used to catch if the start rule is not
+ // compatible with the grammar.
+ template <typename Iterator_, typename T1_, typename T2_, typename T3_>
+ grammar(
+ rule<Iterator_, T1_, T2_, T3_> const&
+ , std::string const& = "unnamed-grammar")
+ {
+ // If you see the assertion below failing then the start rule
+ // passed to the constructor of the grammar is not compatible with
+ // the grammar (i.e. it uses different template parameters).
+ BOOST_SPIRIT_ASSERT_MSG(false, incompatible_start_rule,
+ (rule<Iterator_, T1_, T2_, T3_>));
+ }
+
         std::string name() const
         {
             return name_;

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -141,7 +141,7 @@
             // then the expression (expr) is not a valid spirit qi expression.
             BOOST_SPIRIT_ASSERT_MATCH(qi::domain, Expr);
 
- f = detail::bind_parser<mpl::true_>(compile<qi::domain>(expr));
+ f = detail::bind_parser<mpl::false_>(compile<qi::domain>(expr));
         }
 
         rule& operator=(rule const& rhs)
@@ -210,11 +210,19 @@
           , Context& /*context*/, Skipper const& skipper
           , Attribute& attr) const
         {
+ //$$$ do a preskip if this is an implied lexeme $$$
+
             if (f)
             {
                 typedef traits::make_attribute<attr_type, Attribute> make_attribute;
 
- typename make_attribute::type attr_ = make_attribute::call(attr);
+ // do down-stream transformation, provides attribute for
+ // rhs parser
+ typedef traits::transform_attribute<
+ typename make_attribute::type, attr_type> transform;
+
+ typename transform::type attr_ =
+ transform::pre(make_attribute::call(attr));
 
                 // If you are seeing a compilation error here, you are probably
                 // trying to use a rule or a grammar which has inherited
@@ -227,6 +235,9 @@
                 // an incompatible skipper type.
                 if (f(first, last, context, skipper))
                 {
+ // do up-stream transformation, this integrates the results
+ // back into the original attribute value, if appropriate
+ traits::post_transform(attr, attr_);
                     return true;
                 }
             }
@@ -239,11 +250,19 @@
           , Context& caller_context, Skipper const& skipper
           , Attribute& attr, Params const& params) const
         {
+ //$$$ do a preskip if this is an implied lexeme $$$
+
             if (f)
             {
                 typedef traits::make_attribute<attr_type, Attribute> make_attribute;
 
- typename make_attribute::type attr_ = make_attribute::call(attr);
+ // do down-stream transformation, provides attribute for
+ // rhs parser
+ typedef traits::transform_attribute<
+ typename make_attribute::type, attr_type> transform;
+
+ typename transform::type attr_ =
+ transform::pre(make_attribute::call(attr));
 
                 // If you are seeing a compilation error here, you are probably
                 // trying to use a rule or a grammar which has inherited
@@ -256,6 +275,9 @@
                 // an incompatible skipper type.
                 if (f(first, last, context, skipper))
                 {
+ // do up-stream transformation, this integrates the results
+ // back into the original attribute value, if appropriate
+ traits::post_transform(attr, attr_);
                     return true;
                 }
             }

Modified: branches/release/boost/spirit/home/qi/nonterminal/simple_trace.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/nonterminal/simple_trace.hpp (original)
+++ branches/release/boost/spirit/home/qi/nonterminal/simple_trace.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -32,6 +32,67 @@
 
 namespace boost { namespace spirit { namespace qi
 {
+ namespace detail
+ {
+ struct token_printer_aux_for_chars
+ {
+ template<typename Char>
+ static void print(std::ostream& o, Char c)
+ {
+ using namespace std; // allow for ADL to find the proper iscntrl
+
+ if (c == static_cast<Char>('\a'))
+ o << "\\a";
+ else if (c == static_cast<Char>('\b'))
+ o << "\\b";
+ else if (c == static_cast<Char>('\f'))
+ o << "\\f";
+ else if (c == static_cast<Char>('\n'))
+ o << "\\n";
+ else if (c == static_cast<Char>('\r'))
+ o << "\\r";
+ else if (c == static_cast<Char>('\t'))
+ o << "\\t";
+ else if (c == static_cast<Char>('\v'))
+ o << "\\v";
+ else if (iscntrl(c))
+ o << "\\" << std::oct << static_cast<int>(c);
+ else
+ o << static_cast<char>(c);
+ }
+ };
+
+ // for token types where the comparison with char constants wouldn't work
+ struct token_printer_aux_for_other_types
+ {
+ template<typename Char>
+ static void print(std::ostream& o, Char c)
+ {
+ o << c;
+ }
+ };
+
+ template <typename Char>
+ struct token_printer_aux
+ : mpl::if_<
+ mpl::and_<
+ is_convertible<Char, char>, is_convertible<char, Char> >
+ , token_printer_aux_for_chars
+ , token_printer_aux_for_other_types>::type
+ {};
+
+ template<typename Char>
+ inline void token_printer(std::ostream& o, Char c)
+ {
+ // allow to customize the token printer routine
+#if !defined(BOOST_SPIRIT_DEBUG_TOKEN_PRINTER)
+ token_printer_aux<Char>::print(o, c);
+#else
+ BOOST_SPIRIT_DEBUG_TOKEN_PRINTER(o, c);
+#endif
+ }
+ }
+
     struct simple_trace
     {
         void print_indent(int n) const
@@ -51,7 +112,7 @@
             BOOST_SPIRIT_DEBUG_OUT << '<' << tag << '>';
             int const n = BOOST_SPIRIT_DEBUG_PRINT_SOME;
             for (int i = 0; first != last && i != n && *first; ++i, ++first)
- BOOST_SPIRIT_DEBUG_OUT << *first;
+ detail::token_printer(BOOST_SPIRIT_DEBUG_OUT, *first);
             BOOST_SPIRIT_DEBUG_OUT << "</" << tag << '>' << std::endl;
         }
 

Modified: branches/release/boost/spirit/home/qi/numeric.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/numeric.hpp (original)
+++ branches/release/boost/spirit/home/qi/numeric.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -11,6 +11,7 @@
 #pragma once
 #endif
 
+#include <boost/spirit/home/qi/numeric/bool.hpp>
 #include <boost/spirit/home/qi/numeric/int.hpp>
 #include <boost/spirit/home/qi/numeric/uint.hpp>
 #include <boost/spirit/home/qi/numeric/real.hpp>

Modified: branches/release/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp (original)
+++ branches/release/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -15,6 +15,7 @@
 
 #include <boost/detail/iterator.hpp>
 #include <boost/spirit/home/support/unused.hpp>
+#include <boost/spirit/home/support/attributes.hpp>
 #include <boost/spirit/home/support/char_encoding/ascii.hpp>
 #include <boost/preprocessor/repetition/repeat.hpp>
 #include <boost/utility/enable_if.hpp>
@@ -362,7 +363,7 @@
 
             if (count + leading_zeros >= MinDigits)
             {
- attr = val;
+ traits::assign_to(val, attr);
                 first = it;
                 return true;
             }
@@ -457,7 +458,7 @@
             {
                 if (count == 0) // must have at least one digit
                     return false;
- attr = val;
+ traits::assign_to(val, attr);
                 first = it;
                 return true;
             }
@@ -471,7 +472,7 @@
                   , SPIRIT_NUMERIC_INNER_LOOP, _)
             }
 
- attr = val;
+ traits::assign_to(val, attr);
             first = it;
             return true;
         }

Modified: branches/release/boost/spirit/home/qi/numeric/detail/real_impl.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/numeric/detail/real_impl.hpp (original)
+++ branches/release/boost/spirit/home/qi/numeric/detail/real_impl.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -17,6 +17,7 @@
 #include <limits>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/spirit/home/support/unused.hpp>
+#include <boost/spirit/home/support/attributes.hpp>
 #include <boost/spirit/home/support/detail/pow10.hpp>
 #include <boost/spirit/home/support/detail/sign.hpp>
 #include <boost/assert.hpp>
@@ -141,7 +142,7 @@
             bool neg = p.parse_sign(first, last);
 
             // Now attempt to parse an integer
- Attribute n = 0;
+ T n = 0;
             bool got_a_number = p.parse_n(first, last, n);
 
             // If we did not get a number it might be a NaN, Inf or a leading
@@ -149,11 +150,11 @@
             if (!got_a_number)
             {
                 // Check whether the number to parse is a NaN or Inf
- if (p.parse_nan(first, last, attr) ||
- p.parse_inf(first, last, attr))
+ if (p.parse_nan(first, last, n) ||
+ p.parse_inf(first, last, n))
                 {
                     // If we got a negative sign, negate the number
- attr = traits::negate(neg, attr);
+ traits::assign_to(traits::negate(neg, n), attr);
                     return true; // got a NaN or Inf, return early
                 }
 
@@ -244,17 +245,17 @@
                 // styles some implementations use for representing NaN or Inf.
 
                 // Check whether the number to parse is a NaN or Inf
- if (p.parse_nan(first, last, attr) ||
- p.parse_inf(first, last, attr))
+ if (p.parse_nan(first, last, n) ||
+ p.parse_inf(first, last, n))
                 {
                     // If we got a negative sign, negate the number
- attr = traits::negate(neg, attr);
+ traits::assign_to(traits::negate(neg, n), attr);
                     return true; // got a NaN or Inf, return immediately
                 }
             }
 
             // If we got a negative sign, negate the number
- attr = traits::negate(neg, n);
+ traits::assign_to(traits::negate(neg, n), attr);
 
             // Success!!!
             return true;

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -24,22 +24,30 @@
     ///////////////////////////////////////////////////////////////////////////
     // Enablers
     ///////////////////////////////////////////////////////////////////////////
+ //[primitive_parsers_enable_short_
     template <>
     struct use_terminal<qi::domain, tag::short_> // enables short_
       : mpl::true_ {};
+ //]
 
+ //[primitive_parsers_enable_int_
     template <>
     struct use_terminal<qi::domain, tag::int_> // enables int_
       : mpl::true_ {};
+ //]
 
+ //[primitive_parsers_enable_long_
     template <>
     struct use_terminal<qi::domain, tag::long_> // enables long_
       : 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_ {};
+ //]
 #endif
 }}
 
@@ -59,6 +67,7 @@
     ///////////////////////////////////////////////////////////////////////////
     // This is the actual int parser
     ///////////////////////////////////////////////////////////////////////////
+ //[primitive_parsers_int
     template <
         typename T
       , unsigned Radix = 10
@@ -95,6 +104,7 @@
             return info("integer");
         }
     };
+ //]
 
     ///////////////////////////////////////////////////////////////////////////
     // This one is the class that the user can instantiate directly
@@ -112,6 +122,7 @@
     ///////////////////////////////////////////////////////////////////////////
     // Parser generators: make_xxx function (objects)
     ///////////////////////////////////////////////////////////////////////////
+ //[primitive_parsers_make_int
     template <typename T>
     struct make_int
     {
@@ -121,19 +132,28 @@
             return result_type();
         }
     };
+ //]
 
+ //[primitive_parsers_short_
     template <typename Modifiers>
     struct make_primitive<tag::short_, Modifiers> : make_int<short> {};
+ //]
 
+ //[primitive_parsers_int_
     template <typename Modifiers>
     struct make_primitive<tag::int_, Modifiers> : make_int<int> {};
+ //]
 
+ //[primitive_parsers_long_
     template <typename Modifiers>
     struct make_primitive<tag::long_, Modifiers> : make_int<long> {};
+ //]
 
 #ifdef BOOST_HAS_LONG_LONG
+ //[primitive_parsers_long_long_
     template <typename Modifiers>
     struct make_primitive<tag::long_long, Modifiers> : make_int<long long> {};
+ //]
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -19,7 +19,7 @@
 #include <boost/spirit/home/support/detail/what_function.hpp>
 #include <boost/spirit/home/support/unused.hpp>
 #include <boost/spirit/home/support/info.hpp>
-#include <boost/fusion/include/any.hpp>
+#include <boost/spirit/home/support/algorithm/any.hpp>
 #include <boost/fusion/include/mpl.hpp>
 #include <boost/fusion/include/for_each.hpp>
 
@@ -39,6 +39,31 @@
 
 namespace boost { namespace spirit { namespace qi
 {
+ namespace detail
+ {
+ template <typename T>
+ struct get_variant_element
+ : mpl::identity<T> {};
+
+ template <typename T>
+ struct get_variant_element<recursive_wrapper<T> >
+ : mpl::identity<T> {};
+
+ template <typename T>
+ struct get_variant_types;
+
+#define BOOST_SPIRIT_IDENTITY(z, n, data) get_variant_element<BOOST_PP_CAT(T, n)>
+ template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
+ struct get_variant_types<variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
+ {
+ typedef mpl::vector<
+ BOOST_PP_ENUM(
+ BOOST_VARIANT_LIMIT_TYPES, BOOST_SPIRIT_IDENTITY, _)>
+ type;
+ };
+#undef BOOST_SPIRIT_IDENTITY
+ }
+
     template <typename Elements>
     struct alternative : nary_parser<alternative<Elements> >
     {
@@ -65,16 +90,42 @@
 
         template <typename Iterator, typename Context
           , typename Skipper, typename Attribute>
- bool parse(Iterator& first, Iterator const& last
+ bool parse_impl(Iterator& first, Iterator const& last
           , Context& context, Skipper const& skipper
- , Attribute& attr) const
+ , Attribute& attr, mpl::true_) const
         {
+ // This branch is chosen if attr *is not* a variant
             detail::alternative_function<Iterator, Context, Skipper, Attribute>
                 f(first, last, context, skipper, attr);
 
             // return true if *any* of the parsers succeed
             return fusion::any(elements, f);
         }
+
+ template <typename Iterator, typename Context
+ , typename Skipper, typename Attribute>
+ bool parse_impl(Iterator& first, Iterator const& last
+ , Context& context, Skipper const& skipper
+ , Attribute& attr, mpl::false_) const
+ {
+ // This branch is chosen if attr *is* a variant
+ detail::alternative_function<Iterator, Context, Skipper, Attribute>
+ f(first, last, context, skipper, attr);
+
+ // return true if *any* of the parsers succeed
+ typename detail::get_variant_types<Attribute>::type vtypes;
+ return spirit::any(elements, vtypes, f);
+ }
+
+ template <typename Iterator, typename Context
+ , typename Skipper, typename Attribute>
+ bool parse(Iterator& first, Iterator const& last
+ , Context& context, Skipper const& skipper
+ , Attribute& attr) const
+ {
+ return parse_impl(first, last, context, skipper, attr,
+ spirit::traits::not_is_variant<Attribute>());
+ }
 
         template <typename Context>
         info what(Context& context) const
@@ -97,4 +148,11 @@
     {};
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Elements>
+ struct has_semantic_action<qi::alternative<Elements> >
+ : nary_has_semantic_action<Elements> {};
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -72,4 +72,11 @@
     {};
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<qi::and_predicate<Subject> >
+ : unary_has_semantic_action<Subject> {};
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -92,4 +92,11 @@
     {};
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Left, typename Right>
+ struct has_semantic_action<qi::difference<Left, Right> >
+ : binary_has_semantic_action<Left, Right> {};
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -75,4 +75,11 @@
     {};
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Elements>
+ struct has_semantic_action<qi::expect<Elements> >
+ : nary_has_semantic_action<Elements> {};
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -22,13 +22,17 @@
     ///////////////////////////////////////////////////////////////////////////
     // Enablers
     ///////////////////////////////////////////////////////////////////////////
+ //[composite_parsers_kleene_enable_
     template <>
     struct use_operator<qi::domain, proto::tag::dereference> // enables *p
       : mpl::true_ {};
+ //]
 }}
 
 namespace boost { namespace spirit { namespace qi
 {
+
+ //[composite_parsers_kleene
     template <typename Subject>
     struct kleene : unary_parser<kleene<Subject> >
     {
@@ -58,7 +62,7 @@
           , Attribute& attr) const
         {
             // create a local value if Attribute is not unused_type
- typedef typename traits::result_of::value<Attribute>::type
+ typedef typename traits::container_value<Attribute>::type
                 value_type;
             value_type val = value_type();
 
@@ -80,14 +84,24 @@
 
         Subject subject;
     };
+ //]
 
     ///////////////////////////////////////////////////////////////////////////
     // Parser generators: make_xxx function (objects)
     ///////////////////////////////////////////////////////////////////////////
+ //[composite_parsers_kleene_generator
     template <typename Elements, typename Modifiers>
     struct make_composite<proto::tag::dereference, Elements, Modifiers>
       : make_unary_composite<Elements, kleene>
     {};
+ //]
+}}}
+
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<qi::kleene<Subject> >
+ : unary_has_semantic_action<Subject> {};
 }}}
 
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -60,7 +60,7 @@
           , Attribute& attr) const
         {
             // create a local value if Attribute is not unused_type
- typedef typename traits::result_of::value<Attribute>::type
+ typedef typename traits::container_value<Attribute>::type
                 value_type;
             value_type val = value_type();
 
@@ -100,4 +100,11 @@
     {};
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Left, typename Right>
+ struct has_semantic_action<qi::list<Left, Right> >
+ : binary_has_semantic_action<Left, Right> {};
+}}}
+
 #endif

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -71,4 +71,11 @@
     {};
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<qi::not_predicate<Subject> >
+ : unary_has_semantic_action<Subject> {};
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -66,7 +66,7 @@
             if (subject.parse(first, last, context, skipper, val))
             {
                 // assign the parsed value into our attribute
- qi::detail::assign_to(val, attr);
+ spirit::traits::assign_to(val, attr);
             }
             return true;
         }
@@ -89,4 +89,11 @@
     {};
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<qi::optional<Subject> >
+ : unary_has_semantic_action<Subject> {};
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -124,6 +124,10 @@
     template <typename Elements, typename Attribute>
     struct pass_attribute<qi::permutation<Elements>, Attribute>
       : wrap_if_not_tuple<Attribute> {};
+
+ template <typename Elements>
+ struct has_semantic_action<qi::permutation<Elements> >
+ : nary_has_semantic_action<Elements> {};
 }}}
 
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -58,7 +58,7 @@
           , Attribute& attr) const
         {
             // create a local value if Attribute is not unused_type
- typedef typename traits::result_of::value<Attribute>::type
+ typedef typename traits::container_value<Attribute>::type
                 value_type;
             value_type val = value_type();
 
@@ -94,4 +94,11 @@
     {};
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject>
+ struct has_semantic_action<qi::plus<Subject> >
+ : unary_has_semantic_action<Subject> {};
+}}}
+
 #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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -63,4 +63,11 @@
     {};
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Elements>
+ struct has_semantic_action<qi::sequence<Elements> >
+ : nary_has_semantic_action<Elements> {};
+}}}
+
 #endif

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -106,6 +106,10 @@
     template <typename Elements, typename Attribute>
     struct pass_attribute<qi::sequential_or<Elements>, Attribute>
       : wrap_if_not_tuple<Attribute> {};
+
+ template <typename Elements>
+ struct has_semantic_action<qi::sequential_or<Elements> >
+ : nary_has_semantic_action<Elements> {};
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/parser.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/parser.hpp (original)
+++ branches/release/boost/spirit/home/qi/parser.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -16,6 +16,8 @@
 
 namespace boost { namespace spirit { namespace qi
 {
+
+ //[parser_base_parser
     template <typename Derived>
     struct parser
     {
@@ -47,6 +49,7 @@
             return *static_cast<Derived const*>(this);
         }
     };
+ //]
 
     template <typename Derived>
     struct primitive_parser : parser<Derived>
@@ -116,6 +119,7 @@
         BOOST_MPL_HAS_XXX_TRAIT_DEF(binary_parser_id)
     }
 
+ // parser type identification
     template <typename T>
     struct is_parser : detail::has_parser_id<T> {};
 
@@ -130,6 +134,7 @@
 
     template <typename T>
     struct is_binary_parser : detail::has_binary_parser_id<T> {};
+
 }}}
 
 #endif

Modified: branches/release/boost/spirit/home/qi/string/symbols.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/string/symbols.hpp (original)
+++ branches/release/boost/spirit/home/qi/string/symbols.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -204,7 +204,7 @@
             if (value_type* val_ptr
                 = lookup->find(first, last, Filter()))
             {
- detail::assign_to(*val_ptr, attr);
+ spirit::traits::assign_to(*val_ptr, attr);
                 return true;
             }
             return false;

Modified: branches/release/boost/spirit/home/qi/string/tst_map.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/string/tst_map.hpp (original)
+++ branches/release/boost/spirit/home/qi/string/tst_map.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -88,7 +88,8 @@
 
                 if (first != last)
                 {
- return node::add(r.first->second.root, first, last, val, this);
+ return node::add(r.first->second.root
+ , first, last, val, this) ? true : false;
                 }
                 else
                 {

Modified: branches/release/boost/spirit/home/support/attributes.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/attributes.hpp (original)
+++ branches/release/boost/spirit/home/support/attributes.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -13,6 +13,8 @@
 #endif
 
 #include <boost/spirit/home/support/unused.hpp>
+#include <boost/spirit/home/support/has_semantic_action.hpp>
+#include <boost/spirit/home/support/attributes_fwd.hpp>
 #include <boost/spirit/home/support/detail/as_variant.hpp>
 #include <boost/optional/optional.hpp>
 #include <boost/fusion/include/transform.hpp>
@@ -23,6 +25,7 @@
 #include <boost/fusion/include/for_each.hpp>
 #include <boost/utility/value_init.hpp>
 #include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/is_convertible.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/end.hpp>
 #include <boost/mpl/find_if.hpp>
@@ -41,11 +44,13 @@
 
     template <typename T>
     struct not_is_variant
- : mpl::true_ {};
+ : mpl::true_
+ {};
 
     template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
     struct not_is_variant<boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
- : mpl::false_ {};
+ : mpl::false_
+ {};
 
     ///////////////////////////////////////////////////////////////////////////
     // attribute_of
@@ -71,7 +76,7 @@
     {
         template <typename Component>
         struct apply
- : is_not_unused<typename
+ : not_is_unused<typename
                 attribute_of<Component, Context, Iterator>::type>
         {};
     };
@@ -85,7 +90,7 @@
     // a single value in any case (even if it actually already is a fusion
     // sequence in its own).
     ///////////////////////////////////////////////////////////////////////////
- template <typename Component, typename Attribute, typename Enable = void>
+ template <typename Component, typename Attribute, typename Enable/* = void*/>
     struct pass_attribute
     {
         typedef fusion::vector1<Attribute&> type;
@@ -164,7 +169,7 @@
     // (filter all unused attributes from the list)
     template <typename Sequence>
     struct filter_unused_attributes
- : fusion::result_of::filter_if<Sequence, is_not_unused<mpl::_> >
+ : fusion::result_of::filter_if<Sequence, not_is_unused<mpl::_> >
     {};
 
     ///////////////////////////////////////////////////////////////////////////
@@ -302,16 +307,152 @@
     };
 
     ///////////////////////////////////////////////////////////////////////////
+ // transform_attribute
+ //
+ // Sometimes the user needs to transform the attribute types for certain
+ // attributes. This template can be used as a customization point, where
+ // the user is able specify specific transformation rules for any attribute
+ // type.
+ //
+ // The default attribute transformation (where the exposed attribute type is
+ // different from the required transformed attribute type) relies on the
+ // convertibility 'exposed type' --> 'transformed type', which has to exist
+ // in order to successfully execute the pre transform step.
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Exposed, typename Transformed, typename Enable/* = void*/>
+ struct transform_attribute
+ {
+ typedef Transformed type;
+
+ static Transformed pre(Exposed& val) { return Transformed(val); }
+ static Transformed pre(Exposed const& val) { return Transformed(val); }
+
+ // By default do post transformation only if types are convertible,
+ // otherwise we assume no post transform is required (i.e. the user
+ // utilizes nview et.al.).
+ static void post(Exposed&, Transformed const&, mpl::false_)
+ {
+ }
+ static void post(Exposed& val, Transformed const& attr, mpl::true_)
+ {
+ assign_to(attr, val);
+ }
+
+ static void post(Exposed& val, Transformed const& attr)
+ {
+ post(val, attr, is_convertible<Transformed, Exposed>());
+ }
+ };
+
+ template <typename Exposed, typename Transformed>
+ struct transform_attribute<Exposed const, Transformed>
+ {
+ typedef Transformed type;
+ static Transformed pre(Exposed const& val) { return Transformed(val); }
+ // Karma only, no post() required
+ };
+
+ template <typename Attribute>
+ struct transform_attribute<Attribute const, Attribute>
+ {
+ typedef Attribute const& type;
+ static Attribute const& pre(Attribute const& val) { return val; }
+ // Karma only, no post() required
+ };
+
+ // reference types need special handling
+ template <typename Exposed, typename Transformed>
+ struct transform_attribute<Exposed&, Transformed>
+ : transform_attribute<Exposed, Transformed>
+ {};
+
+ template <typename Attribute>
+ struct transform_attribute<Attribute&, Attribute>
+ {
+ typedef Attribute& type;
+ static Attribute& pre(Attribute& val) { return val; }
+ static void post(Attribute&, Attribute const&) {}
+ };
+
+ template <typename Attribute>
+ struct transform_attribute<Attribute const&, Attribute>
+ : transform_attribute<Attribute const, Attribute>
+ {};
+
+ // unused_type needs some special handling as well
+ template <>
+ struct transform_attribute<unused_type, unused_type>
+ {
+ typedef unused_type type;
+ static unused_type pre(unused_type) { return unused; }
+ static void post(unused_type, unused_type) {}
+ };
+
+ template <>
+ struct transform_attribute<unused_type const, unused_type>
+ : transform_attribute<unused_type, unused_type>
+ {};
+
+ template <typename Attribute>
+ struct transform_attribute<unused_type, Attribute>
+ : transform_attribute<unused_type, unused_type>
+ {};
+
+ template <typename Attribute>
+ struct transform_attribute<unused_type const, Attribute>
+ : transform_attribute<unused_type, unused_type>
+ {};
+
+ template <typename Attribute>
+ struct transform_attribute<Attribute, unused_type>
+ : transform_attribute<unused_type, unused_type>
+ {};
+
+ template <typename Attribute>
+ struct transform_attribute<Attribute const, unused_type>
+ : transform_attribute<unused_type, unused_type>
+ {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ namespace result_of
+ {
+ template <typename Exposed, typename Transformed>
+ struct pre_transform
+ : traits::transform_attribute<Exposed, Transformed>
+ {};
+ }
+
+ template <typename Transformed, typename Exposed>
+ typename traits::result_of::pre_transform<Exposed, Transformed>::type
+ pre_transform(Exposed& attr)
+ {
+ return transform_attribute<Exposed, Transformed>::pre(attr);
+ }
+
+ template <typename Transformed, typename Exposed>
+ typename traits::result_of::pre_transform<Exposed const, Transformed>::type
+ pre_transform(Exposed const& attr)
+ {
+ return transform_attribute<Exposed const, Transformed>::pre(attr);
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Exposed, typename Transformed>
+ void post_transform(Exposed& dest, Transformed const& attr)
+ {
+ return transform_attribute<Exposed, Transformed>::post(dest, attr);
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
     // make_attribute
     //
- // All parsers and generators have specific attribute or parameter types.
- // Spirit parsers are passed an attribute and Spirit generators
- // are passed a parameter; these are either references to the expected
- // type, or an unused_type -- to flag that we do not care about the
- // attribute/parameter. For semantic actions, however, we need to have a
- // real value to pass to the semantic action. If the client did not
- // provide one, we will have to synthesize the value. This class
- // takes care of that.
+ // All parsers and generators have specific attribute types.
+ // Spirit parsers and generators are passed an attribute; these are either
+ // references to the expected type, or an unused_type -- to flag that we do
+ // not care about the attribute. For semantic actions, however, we need to
+ // have a real value to pass to the semantic action. If the client did not
+ // provide one, we will have to synthesize the value. This class takes care
+ // of that.
     ///////////////////////////////////////////////////////////////////////////
     template <typename Attribute, typename ActualAttribute>
     struct make_attribute
@@ -341,25 +482,17 @@
         {
             return value; // just pass the one provided
         }
-
- template <typename T>
- static T const& call(T const& value)
- {
- return value; // just pass the one provided
- }
     };
 
     template <typename Attribute, typename ActualAttribute>
     struct make_attribute<Attribute&, ActualAttribute>
       : make_attribute<Attribute, ActualAttribute>
- {
- };
+ {};
 
     template <typename Attribute, typename ActualAttribute>
     struct make_attribute<Attribute const&, ActualAttribute>
       : make_attribute<Attribute, ActualAttribute>
- {
- };
+ {};
 
     template <typename ActualAttribute>
     struct make_attribute<unused_type, ActualAttribute>
@@ -433,13 +566,19 @@
     // sequence
     ///////////////////////////////////////////////////////////////////////////
     template <typename T>
- struct one_element_sequence : mpl::false_ {};
+ struct one_element_sequence
+ : mpl::false_
+ {};
 
     template <typename T>
- struct one_element_sequence<fusion::vector1<T> > : mpl::true_ {};
+ struct one_element_sequence<fusion::vector1<T> >
+ : mpl::true_
+ {};
 
     template <typename T>
- struct one_element_sequence<fusion::vector<T> > : mpl::true_ {};
+ struct one_element_sequence<fusion::vector<T> >
+ : mpl::true_
+ {};
 
     ///////////////////////////////////////////////////////////////////////////
     // clear
@@ -447,7 +586,7 @@
     // Clear data efficiently
     ///////////////////////////////////////////////////////////////////////////
     template <typename T>
- struct is_container;
+ void clear(T& val);
 
     namespace detail
     {
@@ -490,31 +629,46 @@
         }
     }
 
- // main dispatch
+ template <typename T, typename Enable/* = void*/>
+ struct clear_value
+ {
+ static void call(T& val)
+ {
+ detail::clear_impl(val, typename is_container<T>::type());
+ }
+ };
+
+ // optionals
     template <typename T>
- void clear(T& val)
+ struct clear_value<optional<T> >
     {
- detail::clear_impl(val, typename is_container<T>::type());
- }
+ static void call(optional<T>& val)
+ {
+ if (val)
+ clear(*val);
+ }
+ };
 
- // for unused
- inline void clear(unused_type)
+ // variants
+ template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
+ struct clear_value<variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
     {
- }
+ static void call(variant<BOOST_VARIANT_ENUM_PARAMS(T)>& val)
+ {
+ apply_visitor(detail::clear_visitor(), val);
+ }
+ };
 
- // optionals
+ // main dispatch
     template <typename T>
- void clear(optional<T>& val)
+ void clear(T& val)
     {
- if (val)
- clear(*val);
+ clear_value<T>::call(val);
     }
 
- // variants
- template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
- void clear(variant<BOOST_VARIANT_ENUM_PARAMS(T)>& var)
+ // for unused
+ inline void clear(unused_type)
     {
- apply_visitor(detail::clear_visitor(), var);
     }
 
 }}}

Modified: branches/release/boost/spirit/home/support/char_class.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/char_class.hpp (original)
+++ branches/release/boost/spirit/home/support/char_class.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -16,6 +16,7 @@
 
 #include <boost/proto/proto.hpp>
 #include <boost/config.hpp>
+#include <boost/mpl/bool.hpp>
 #include <boost/spirit/home/support/unused.hpp>
 
 #if defined(BOOST_MSVC)
@@ -308,6 +309,44 @@
     };
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ ///////////////////////////////////////////////////////////////////////////
+ // This meta-function evaluates to mpl::true_ if the function
+ // char_encoding::ischar() needs to be called to ensure correct matching.
+ // This happens mainly if the character type returned from the underlying
+ // iterator is larger than the character type of the used character
+ // encoding. Additionally, this meta-function provides a customization
+ // point for the lexer library to enforce this behavior while parsing
+ // a token stream.
+ template <typename Char, typename BaseChar>
+ struct mustcheck_ischar
+ : mpl::bool_<(sizeof(Char) > sizeof(BaseChar)) ? true : false> {};
+
+ ///////////////////////////////////////////////////////////////////////////
+ // The following template calls char_encoding::ischar, if necessary
+ template <typename CharParam, typename CharEncoding
+ , bool MustCheck = mustcheck_ischar<
+ CharParam, typename CharEncoding::char_type>::value>
+ struct ischar
+ {
+ static bool call(CharParam)
+ {
+ return true;
+ }
+ };
+
+ template <typename CharParam, typename CharEncoding>
+ struct ischar<CharParam, CharEncoding, true>
+ {
+ static bool call(CharParam const& ch)
+ {
+ return CharEncoding::ischar(int(ch));
+ }
+ };
+
+}}}
+
 #if defined(BOOST_MSVC)
 # pragma warning(pop)
 #endif

Modified: branches/release/boost/spirit/home/support/char_encoding/iso8859_1.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/char_encoding/iso8859_1.hpp (original)
+++ branches/release/boost/spirit/home/support/char_encoding/iso8859_1.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -579,7 +579,9 @@
         static bool
         ischar(int ch)
         {
- return true; // iso8859.1 uses all 8 bits
+ // iso8859.1 uses all 8 bits
+ // we have to watch out for sign extensions
+ return (0 == (ch & ~0xff) || ~0 == (ch | 0xff)) ? true : false;
         }
 
         static int

Modified: branches/release/boost/spirit/home/support/char_encoding/standard.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/char_encoding/standard.hpp (original)
+++ branches/release/boost/spirit/home/support/char_encoding/standard.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -33,7 +33,9 @@
         static bool
         ischar(int ch)
         {
- return true; // use all the bits
+ // uses all 8 bits
+ // we have to watch out for sign extensions
+ return (0 == (ch & ~0xff) || ~0 == (ch | 0xff)) ? true : false;
         }
 
         static int

Modified: branches/release/boost/spirit/home/support/char_encoding/standard_wide.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/char_encoding/standard_wide.hpp (original)
+++ branches/release/boost/spirit/home/support/char_encoding/standard_wide.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -16,12 +16,29 @@
 #include <string>
 
 #include <boost/cstdint.hpp>
+#include <boost/spirit/home/support/assert_msg.hpp>
+
+namespace boost { namespace spirit { namespace traits
+{
+ template <std::size_t N>
+ struct wchar_t_size
+ {
+ BOOST_SPIRIT_ASSERT_MSG(N == 1 || N == 2 || N == 4,
+ not_supported_size_of_wchar_t, ());
+ };
+
+ template <> struct wchar_t_size<1> { enum { mask = 0xff }; };
+ template <> struct wchar_t_size<2> { enum { mask = 0xffff }; };
+ template <> struct wchar_t_size<4> { enum { mask = 0xffffffff }; };
+
+}}}
 
 namespace boost { namespace spirit { namespace char_encoding
 {
     ///////////////////////////////////////////////////////////////////////////
     // Test characters for specified conditions (using std wchar_t functions)
     ///////////////////////////////////////////////////////////////////////////
+
     struct standard_wide
     {
         typedef wchar_t char_type;
@@ -41,9 +58,17 @@
         }
 
         static bool
- ischar(wchar_t ch)
+ ischar(int ch)
         {
- return true; // any wchar_t
+ // we have to watch out for sign extensions (casting is there to
+ // silence certain compilers complaining about signed/unsigned
+ // mismatch)
+ return (
+ std::size_t(0) ==
+ std::size_t(ch & ~traits::wchar_t_size<sizeof(wchar_t)>::mask) ||
+ std::size_t(~0) ==
+ std::size_t(ch | traits::wchar_t_size<sizeof(wchar_t)>::mask)
+ ) ? true : false; // any wchar_t, but no other bits set
         }
 
         static bool

Modified: branches/release/boost/spirit/home/support/common_terminals.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/common_terminals.hpp (original)
+++ branches/release/boost/spirit/home/support/common_terminals.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -41,6 +41,7 @@
         ( bin )
         ( oct )
         ( hex )
+ ( bool_ )
         ( ushort_ )
         ( ulong_ )
         ( uint_ )
@@ -78,6 +79,13 @@
         ( token )
         ( attr )
     )
+
+ // special tags (used mainly for stateful tag types)
+ namespace tag
+ {
+ struct attr_cast {};
+ }
+
 }}
 
 ///////////////////////////////////////////////////////////////////////////////

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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -14,6 +14,7 @@
 #endif
 
 #include <boost/spirit/home/support/unused.hpp>
+#include <boost/spirit/home/support/attributes_fwd.hpp>
 #include <boost/detail/iterator.hpp> // for boost::detail::iterator_traits
 #include <boost/mpl/has_xxx.hpp>
 #include <boost/mpl/bool.hpp>
@@ -38,19 +39,19 @@
         BOOST_MPL_HAS_XXX_TRAIT_DEF(reference)
     }
 
- template <typename T>
- struct is_container :
- mpl::bool_<
+ template <typename T, typename Enable/* = void*/>
+ struct is_container
+ : mpl::bool_<
             detail::has_value_type<T>::value &&
             detail::has_iterator<T>::value &&
             detail::has_size_type<T>::value &&
- detail::has_reference<T>::value
- >
+ detail::has_reference<T>::value>
     {};
 
    template <typename T>
    struct is_container<optional<T> >
- : is_container<T> {};
+ : is_container<T>
+ {};
 
 #define BOOST_SPIRIT_IS_CONTAINER(z, N, data) \
        is_container<BOOST_PP_CAT(T, N)>::value || \
@@ -59,143 +60,235 @@
    template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
    struct is_container<variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
      : mpl::bool_<BOOST_PP_REPEAT(BOOST_VARIANT_LIMIT_TYPES
- , BOOST_SPIRIT_IS_CONTAINER, _) false> {};
+ , BOOST_SPIRIT_IS_CONTAINER, _) false>
+ {};
 
 #undef BOOST_SPIRIT_IS_CONTAINER
 
- ///////////////////////////////////////////////////////////////////////////
- namespace detail
+ namespace result_of
     {
+ ///////////////////////////////////////////////////////////////////////
         template <typename T>
- struct remove_value_const
+ struct optional_value
         {
             typedef T type;
         };
 
         template <typename T>
- struct remove_value_const<T const> : remove_value_const<T>
- {};
-
- template <typename F, typename S>
- struct remove_value_const<std::pair<F, S> >
- {
- typedef typename remove_value_const<F>::type first_type;
- typedef typename remove_value_const<S>::type second_type;
- typedef std::pair<first_type, second_type> type;
- };
- }
-
- namespace result_of
- {
- ///////////////////////////////////////////////////////////////////////
- template <typename Container>
- struct value
+ struct optional_value<optional<T> >
         {
- typedef typename detail::remove_value_const<
- typename Container::value_type>::type
- type;
+ typedef T type;
         };
 
- // this will be instantiated if the optional holds a container
         template <typename T>
- struct value<optional<T> > : value<T> {};
-
- // this will be instantiated if the variant holds a container
- template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
- struct value<variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
- {
- typedef typename
- variant<BOOST_VARIANT_ENUM_PARAMS(T)>::types
- types;
- typedef typename
- mpl::find_if<types, is_container<mpl::_1> >::type
- iter;
-
- typedef typename value<
- typename mpl::if_<
- is_same<iter, typename mpl::end<types>::type>
- , unused_type, typename mpl::deref<iter>::type
- >::type
- >::type type;
+ struct optional_value<optional<T> const>
+ {
+ typedef T const type;
         };
 
         template <>
- struct value<unused_type>
+ struct optional_value<unused_type>
         {
             typedef unused_type type;
         };
 
         template <>
- struct value<unused_type const>
+ struct optional_value<unused_type const>
         {
             typedef unused_type type;
         };
+ }
 
- ///////////////////////////////////////////////////////////////////////
- template <typename Container>
- struct iterator
+ ///////////////////////////////////////////////////////////////////////////
+ namespace detail
+ {
+ template <typename T>
+ struct remove_value_const
         {
- typedef typename Container::iterator type;
+ typedef T type;
         };
 
- template <typename Container>
- struct iterator<Container const>
+ template <typename T>
+ struct remove_value_const<T const>
+ : remove_value_const<T>
+ {};
+
+ template <typename F, typename S>
+ struct remove_value_const<std::pair<F, S> >
         {
- typedef typename Container::const_iterator type;
+ typedef typename remove_value_const<F>::type first_type;
+ typedef typename remove_value_const<S>::type second_type;
+ typedef std::pair<first_type, second_type> type;
         };
+ }
 
- template <>
- struct iterator<unused_type>
+ ///////////////////////////////////////////////////////////////////////
+ //[customization_container_value_default
+ template <typename Container, typename Enable/* = void*/>
+ struct container_value
+ : detail::remove_value_const<typename Container::value_type>
+ {};
+ //]
+
+ // this will be instantiated if the optional holds a container
+ template <typename T>
+ struct container_value<optional<T> >
+ : container_value<T>
+ {};
+
+ // this will be instantiated if the variant holds a container
+ template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
+ struct container_value<variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
+ {
+ typedef typename
+ variant<BOOST_VARIANT_ENUM_PARAMS(T)>::types
+ types;
+ typedef typename
+ mpl::find_if<types, is_container<mpl::_1> >::type
+ iter;
+
+ typedef typename container_value<
+ typename mpl::if_<
+ is_same<iter, typename mpl::end<types>::type>
+ , unused_type, typename mpl::deref<iter>::type
+ >::type
+ >::type type;
+ };
+
+ //[customization_container_value_unused
+ template <>
+ struct container_value<unused_type>
+ {
+ typedef unused_type type;
+ };
+ //]
+
+ template <>
+ struct container_value<unused_type const>
+ {
+ typedef unused_type type;
+ };
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Container, typename Enable/* = void*/>
+ struct container_iterator
+ {
+ typedef typename Container::iterator type;
+ };
+
+ template <typename Container>
+ struct container_iterator<Container const>
+ {
+ typedef typename Container::const_iterator type;
+ };
+
+ template <>
+ struct container_iterator<unused_type>
+ {
+ typedef unused_type const* type;
+ };
+
+ template <>
+ struct container_iterator<unused_type const>
+ {
+ typedef unused_type const* type;
+ };
+
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename T, typename Enable/* = void*/>
+ struct optional_attribute
+ {
+ typedef T const& type;
+
+ static type call(T const& val)
         {
- typedef unused_type const* type;
- };
+ return val;
+ }
 
- template <>
- struct iterator<unused_type const>
+ static bool is_valid(T const&)
         {
- typedef unused_type const* type;
- };
+ return true;
+ }
+ };
 
- ///////////////////////////////////////////////////////////////////////
- template <typename T>
- struct optional_value
+ template <typename T>
+ struct optional_attribute<optional<T> >
+ {
+ typedef T const& type;
+
+ static type call(optional<T> const& val)
         {
- typedef T type;
- };
+ return boost::get<T>(val);
+ }
 
- template <typename T>
- struct optional_value<optional<T> >
+ static bool is_valid(optional<T> const& val)
         {
- typedef T type;
- };
+ return val;
+ }
+ };
 
- template <>
- struct optional_value<unused_type>
+ template <typename T>
+ struct optional_attribute<optional<T const> >
+ {
+ typedef T const& type;
+
+ static type call(optional<T const> const& val)
         {
- typedef unused_type type;
- };
+ return boost::get<T const>(val);
+ }
 
- template <>
- struct optional_value<unused_type const>
+ static bool is_valid(optional<T const> const& val)
         {
- typedef unused_type type;
- };
+ return val;
+ }
+ };
+
+ template <typename T>
+ typename optional_attribute<T>::type
+ optional_value(T const& val)
+ {
+ return optional_attribute<T>::call(val);
+ }
+
+ inline unused_type optional_value(unused_type)
+ {
+ return unused;
+ }
+
+ template <typename T>
+ bool has_optional_value(T const& val)
+ {
+ return optional_attribute<T>::is_valid(val);
+ }
+
+ inline bool has_optional_value(unused_type)
+ {
+ return true;
     }
 
     ///////////////////////////////////////////////////////////////////////////
     template <typename Container, typename T>
- inline void push_back(Container& c, T const& val)
+ void push_back(Container& c, T const& val);
+
+ template <typename Container, typename T, typename Enable/* = void*/>
+ struct push_back_container
     {
- c.insert(c.end(), val);
- }
+ static void call(Container& c, T const& val)
+ {
+ c.insert(c.end(), val);
+ }
+ };
 
     template <typename Container, typename T>
- inline void push_back(optional<Container>& c, T const& val)
+ struct push_back_container<optional<Container>, T>
     {
- if (!c)
- c = Container();
- push_back(boost::get<Container>(c), val);
- }
+ static void call(optional<Container>& c, T const& val)
+ {
+ if (!c)
+ c = Container();
+ push_back(boost::get<Container>(c), val);
+ }
+ };
 
     namespace detail
     {
@@ -228,19 +321,27 @@
     }
 
     template <BOOST_VARIANT_ENUM_PARAMS(typename T_), typename T>
- inline void push_back(variant<BOOST_VARIANT_ENUM_PARAMS(T_)>& c
- , T const& val)
+ struct push_back_container<variant<BOOST_VARIANT_ENUM_PARAMS(T_)>, T>
     {
- apply_visitor(detail::push_back_visitor<T>(val), c);
+ static void call(variant<BOOST_VARIANT_ENUM_PARAMS(T_)>& c, T const& val)
+ {
+ apply_visitor(detail::push_back_visitor<T>(val), c);
+ }
+ };
+
+ template <typename Container, typename T>
+ void push_back(Container& c, T const& val)
+ {
+ push_back_container<Container, T>::call(c, val);
     }
 
     template <typename Container>
- inline void push_back(Container&, unused_type)
+ void push_back(Container&, unused_type)
     {
     }
 
     template <typename T>
- inline void push_back(unused_type, T const&)
+ void push_back(unused_type, T const&)
     {
     }
 
@@ -249,18 +350,29 @@
     }
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Container>
- inline typename result_of::iterator<Container>::type
- begin(Container& c)
+ template <typename Container, typename Enable/* = void*/>
+ struct begin_container
+ {
+ typedef typename container_iterator<Container>::type type;
+ static type call(Container& c)
+ {
+ return c.begin();
+ }
+ };
+
+ namespace result_of
     {
- return c.begin();
+ template <typename Container>
+ struct begin
+ : traits::container_iterator<Container>
+ {};
     }
 
     template <typename Container>
- inline typename result_of::iterator<Container const>::type
- begin(Container const& c)
+ typename begin_container<Container>::type
+ begin(Container& c)
     {
- return c.begin();
+ return begin_container<Container>::call(c);
     }
 
     inline unused_type const*
@@ -269,18 +381,30 @@
         return &unused;
     }
 
- template <typename Container>
- inline typename result_of::iterator<Container>::type
- end(Container& c)
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Container, typename Enable/* = void*/>
+ struct end_container
     {
- return c.end();
+ typedef typename container_iterator<Container>::type type;
+ static type call(Container& c)
+ {
+ return c.end();
+ }
+ };
+
+ namespace result_of
+ {
+ template <typename Container>
+ struct end
+ : traits::container_iterator<Container>
+ {};
     }
 
     template <typename Container>
- inline typename result_of::iterator<Container const>::type
- end(Container const& c)
+ inline typename end_container<Container>::type
+ end(Container& c)
     {
- return c.end();
+ return end_container<Container>::call(c);
     }
 
     inline unused_type const*
@@ -290,17 +414,29 @@
     }
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Iterator>
- inline typename boost::detail::iterator_traits<Iterator>::reference
- deref(Iterator& it)
+ template <typename Iterator, typename Enable/* = void*/>
+ struct deref_iterator
+ {
+ typedef typename boost::detail::iterator_traits<Iterator>::reference type;
+ static type call(Iterator& it)
+ {
+ return *it;
+ }
+ };
+
+ namespace result_of
     {
- return *it;
+ template <typename Iterator>
+ struct deref
+ : traits::deref_iterator<Iterator>
+ {};
     }
 
- inline unused_type
- deref(unused_type*)
+ template <typename Iterator>
+ typename deref_iterator<Iterator>::type
+ deref(Iterator& it)
     {
- return unused;
+ return deref_iterator<Iterator>::call(it);
     }
 
     inline unused_type
@@ -310,43 +446,57 @@
     }
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Iterator>
- inline Iterator
- next(Iterator& it)
+ template <typename Iterator, typename Enable/* = void*/>
+ struct next_iterator
     {
- return ++it;
+ typedef Iterator type;
+ static type call(Iterator& it)
+ {
+ return ++it;
+ }
+ };
+
+ namespace result_of
+ {
+ template <typename Iterator>
+ struct next
+ {
+ typedef Iterator type;
+ };
     }
 
- inline unused_type
- next(unused_type*)
+ template <typename Iterator>
+ typename next_iterator<Iterator>::type
+ next(Iterator& it)
     {
- return &unused;
+ return next_iterator<Iterator>::call(it);
     }
 
- inline unused_type
+ inline unused_type const*
     next(unused_type const*)
     {
         return &unused;
     }
 
     ///////////////////////////////////////////////////////////////////////////
- template <typename Iterator>
- inline bool
- compare(Iterator const& it1, Iterator const& it2)
+ template <typename Iterator, typename Enable/* = void*/>
+ struct compare_iterators
     {
- return it1 == it2;
- }
+ static bool call(Iterator const& it1, Iterator const& it2)
+ {
+ return it1 == it2;
+ }
+ };
 
- inline bool
- compare(unused_type*, unused_type*)
+ template <typename Iterator>
+ bool compare(Iterator& it1, Iterator& it2)
     {
- return true;
+ return compare_iterators<Iterator>::call(it1, it2);
     }
 
- inline bool
- compare(unused_type const*, unused_type const*)
+ inline bool compare(unused_type const*, unused_type const*)
     {
- return true;
+ return false;
     }
 
 }}}

Modified: branches/release/boost/spirit/home/support/terminal.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/terminal.hpp (original)
+++ branches/release/boost/spirit/home/support/terminal.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -432,6 +432,52 @@
         };
     }
 
+ ///////////////////////////////////////////////////////////////////////////
+ // support for stateful tag types
+ namespace tag
+ {
+ template <typename Data, typename Tag
+ , typename DataTag1 = unused_type, typename DataTag2 = unused_type>
+ struct stateful_tag
+ {
+ typedef Data data_type;
+
+ stateful_tag() {}
+ stateful_tag(data_type const& data) : data_(data) {}
+
+ data_type data_;
+ };
+ }
+
+ template <typename Data, typename Tag
+ , typename DataTag1 = unused_type, typename DataTag2 = unused_type>
+ struct stateful_tag_type
+ : spirit::terminal<tag::stateful_tag<Data, Tag, DataTag1, DataTag2> >
+ {
+ typedef tag::stateful_tag<Data, Tag, DataTag1, DataTag2> tag_type;
+
+ stateful_tag_type() {}
+ stateful_tag_type(Data const& data)
+ : spirit::terminal<tag_type>(data) {}
+ };
+
+ namespace detail
+ {
+ // extract expression if this is a Tag
+ template <typename StatefulTag>
+ struct get_stateful_data
+ {
+ typedef typename StatefulTag::data_type data_type;
+
+ // is invoked if given tag is != Tag
+ template <typename Tag_>
+ static data_type call(Tag_) { return data_type(); }
+
+ // this is invoked if given tag is same as'Tag'
+ static data_type const& call(StatefulTag const& t) { return t.data_; }
+ };
+ }
+
 }}
 
 // Define a spirit terminal. This macro may be placed in any namespace.

Modified: branches/release/boost/spirit/home/support/unused.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/unused.hpp (original)
+++ branches/release/boost/spirit/home/support/unused.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -55,8 +55,8 @@
     namespace traits
     {
         // We use this test to detect if the argument is not an unused_type
- template <typename T> struct is_not_unused : mpl::true_ {};
- template <> struct is_not_unused<unused_type> : mpl::false_ {};
+ template <typename T> struct not_is_unused : mpl::true_ {};
+ template <> struct not_is_unused<unused_type> : mpl::false_ {};
     }
 }}
 

Modified: branches/release/boost/spirit/repository/home/karma/directive/confix.hpp
==============================================================================
--- branches/release/boost/spirit/repository/home/karma/directive/confix.hpp (original)
+++ branches/release/boost/spirit/repository/home/karma/directive/confix.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -19,8 +19,8 @@
 
 #include <boost/spirit/repository/home/support/confix.hpp>
 
-#include <boost/fusion/include/at.hpp>
 #include <boost/fusion/include/vector.hpp>
+#include <boost/mpl/or.hpp>
 
 ///////////////////////////////////////////////////////////////////////////////
 namespace boost { namespace spirit
@@ -125,4 +125,16 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject, typename Prefix, typename Suffix>
+ struct has_semantic_action<
+ repository::karma::confix_generator<Subject, Prefix, Suffix> >
+ : mpl::or_<
+ has_semantic_action<Subject>
+ , has_semantic_action<Prefix>
+ , has_semantic_action<Suffix>
+ > {};
+}}}
+
 #endif

Modified: branches/release/boost/spirit/repository/home/karma/nonterminal/subrule.hpp
==============================================================================
--- branches/release/boost/spirit/repository/home/karma/nonterminal/subrule.hpp (original)
+++ branches/release/boost/spirit/repository/home/karma/nonterminal/subrule.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -200,8 +200,8 @@
             context_type;
 
             // Create an attribute if none is supplied.
- typedef traits::make_attribute<subrule_attr_type, Attribute>
- make_attribute;
+ typedef traits::make_transformed_attribute<
+ subrule_attr_type, Attribute const> make_attribute;
 
             // If you are seeing a compilation error here, you are probably
             // trying to use a subrule which has inherited attributes,
@@ -233,14 +233,14 @@
             context_type;
 
             // Create an attribute if none is supplied.
- typedef traits::make_attribute<subrule_attr_type, Attribute>
- make_attribute;
+ typedef traits::make_transformed_attribute<
+ subrule_attr_type, Attribute const> make_attribute;
 
             // If you are seeing a compilation error here, you are probably
             // trying to use a subrule which has inherited attributes,
             // passing values of incompatible types for them.
- context_type context(*this, make_attribute::call(attr)
- , params, caller_context);
+ context_type context(*this, make_attribute::call(attr), params
+ , caller_context);
 
             return def.binder(sink, context, delimiter);
         }

Modified: branches/release/boost/spirit/repository/home/qi/directive/confix.hpp
==============================================================================
--- branches/release/boost/spirit/repository/home/qi/directive/confix.hpp (original)
+++ branches/release/boost/spirit/repository/home/qi/directive/confix.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -17,11 +17,12 @@
 #include <boost/spirit/home/support/info.hpp>
 #include <boost/spirit/home/support/unused.hpp>
 #include <boost/spirit/home/support/attributes.hpp>
-#include <boost/fusion/include/at.hpp>
-#include <boost/fusion/include/vector.hpp>
 
 #include <boost/spirit/repository/home/support/confix.hpp>
 
+#include <boost/fusion/include/vector.hpp>
+#include <boost/mpl/or.hpp>
+
 ///////////////////////////////////////////////////////////////////////////////
 namespace boost { namespace spirit
 {
@@ -133,5 +134,17 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject, typename Prefix, typename Suffix>
+ struct has_semantic_action<
+ repository::qi::confix_parser<Subject, Prefix, Suffix> >
+ : mpl::or_<
+ has_semantic_action<Subject>
+ , has_semantic_action<Prefix>
+ , has_semantic_action<Suffix>
+ > {};
+}}}
+
 #endif
 

Modified: branches/release/boost/spirit/repository/home/qi/directive/distinct.hpp
==============================================================================
--- branches/release/boost/spirit/repository/home/qi/directive/distinct.hpp (original)
+++ branches/release/boost/spirit/repository/home/qi/directive/distinct.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -131,5 +131,13 @@
 
 }}}
 
+namespace boost { namespace spirit { namespace traits
+{
+ template <typename Subject, typename Tail, typename Modifier>
+ struct has_semantic_action<
+ repository::qi::distinct_parser<Subject, Tail, Modifier> >
+ : unary_has_semantic_action<Subject> {};
+}}}
+
 #endif
 

Modified: branches/release/boost/spirit/repository/home/qi/nonterminal/subrule.hpp
==============================================================================
--- branches/release/boost/spirit/repository/home/qi/nonterminal/subrule.hpp (original)
+++ branches/release/boost/spirit/repository/home/qi/nonterminal/subrule.hpp 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -196,9 +196,9 @@
             context_type;
 
             // prepare attribute
- typedef
- traits::make_attribute<subrule_attr_type, Attribute>
- make_attribute;
+ typedef traits::make_transformed_attribute<
+ subrule_attr_type, Attribute> make_attribute;
+
             typename make_attribute::type attr_ = make_attribute::call(attr);
 
             // If you are seeing a compilation error here, you are probably
@@ -233,9 +233,9 @@
             context_type;
 
             // prepare attribute
- typedef
- traits::make_attribute<subrule_attr_type, Attribute>
- make_attribute;
+ typedef traits::make_transformed_attribute<
+ subrule_attr_type, Attribute> make_attribute;
+
             typename make_attribute::type attr_ = make_attribute::call(attr);
 
             // If you are seeing a compilation error here, you are probably

Modified: branches/release/libs/spirit/classic/doc/multi_pass.html
==============================================================================
--- branches/release/libs/spirit/classic/doc/multi_pass.html (original)
+++ branches/release/libs/spirit/classic/doc/multi_pass.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -86,24 +86,24 @@
     </span><span class="keyword">using namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;
     </span><span class="keyword">using namespace</span> <span class="identifier">std</span><span class="special">;</span>
     
- <span class="identifier">ifstream in</span><span class="special">(</span><span class="string">"input_file.txt"</span><span class="special">); </span><span class="comment">// we get our input from this file<br><br> </span><span class="keyword">typedef char </span><span class="identifier">char_t</span><span class="special">;</span>
- <span class="keyword">typedef </span><span class="identifier">multi_pass</span><span class="special">&lt;</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">char_t</span><span class="special">&gt; &gt; </span><span class="identifier">iterator_t</span><span class="special">;</span>
+ <span class="identifier">ifstream in</span><span class="special">(</span><span class="string">"input_file.txt"</span><span class="special">); </span><span class="comment">// we get our input from this file<br><br> </span><span class="keyword">typedef char </span><span class="identifier">char_type</span><span class="special">;</span>
+ <span class="keyword">typedef </span><span class="identifier">multi_pass</span><span class="special">&lt;</span><span class="identifier">istreambuf_iterator</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">&gt; &gt; </span><span class="identifier">iterator_type</span><span class="special">;</span>
 
- <span class="keyword">typedef</span> <span class="identifier">skip_parser_iteration_policy</span><span class="special">&lt;</span><span class="identifier">space_parser</span><span class="special">&gt;</span> <span class="identifier">iter_policy_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">scanner_policies</span><span class="special">&lt;</span>iter_policy_t<span class="special">&gt;</span> <span class="identifier">scanner_policies_t</span><span class="special">;</span>
- <span class="keyword">typedef</span> <span class="identifier">scanner</span><span class="special">&lt;</span>iterator_t, scanner_policies_t<span class="special">&gt;</span> <span class="identifier">scanner_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">skip_parser_iteration_policy</span><span class="special">&lt;</span><span class="identifier">space_parser</span><span class="special">&gt;</span> <span class="identifier">iter_policy_type</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">scanner_policies</span><span class="special">&lt;</span>iter_policy_type<span class="special">&gt;</span> <span class="identifier">scanner_policies_type</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">scanner</span><span class="special">&lt;</span>iterator_type, scanner_policies_type<span class="special">&gt;</span> <span class="identifier">scanner_type</span><span class="special">;</span>
 
- <span class="keyword">typedef</span> rule<span class="special">&lt;</span>scanner_t<span class="special">&gt;</span> <span class="identifier">rule_t</span><span class="special">;</span>
+ <span class="keyword">typedef</span> rule<span class="special">&lt;</span>scanner_type<span class="special">&gt;</span> <span class="identifier">rule_type</span><span class="special">;</span>
 
- <span class="identifier">iter_policy_t</span> <span class="identifier">iter_policy</span><span class="special">(</span><span class="identifier">space_p</span><span class="special">);</span>
- <span class="identifier">scanner_policies_t</span> <span class="identifier">policies</span><span class="special">(</span><span class="identifier">iter_policy</span><span class="special">);</span>
- iterator_t first(
- make_multi_pass(std::istreambuf_iterator&lt;char_t&gt;(in)));
+ <span class="identifier">iter_policy_type</span> <span class="identifier">iter_policy</span><span class="special">(</span><span class="identifier">space_p</span><span class="special">);</span>
+ <span class="identifier">scanner_policies_type</span> <span class="identifier">policies</span><span class="special">(</span><span class="identifier">iter_policy</span><span class="special">);</span>
+ iterator_type first(
+ make_multi_pass(std::istreambuf_iterator&lt;char_type&gt;(in)));
 
- scanner_t <span class="identifier">scan</span><span class="special">(</span>
- first<span class="special">,</span> make_multi_pass(std::istreambuf_iterator<span class="special">&lt;</span><span class="identifier">char_t</span><span class="special">&gt;()),</span>
+ scanner_type <span class="identifier">scan</span><span class="special">(</span>
+ first<span class="special">,</span> make_multi_pass(std::istreambuf_iterator<span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">&gt;()),</span>
         <span class="identifier">policies</span><span class="special">)</span>;
-<span class="special"><br> </span><span class="identifier">rule_t n_list </span><span class="special">= </span><span class="identifier">real_p </span><span class="special">&gt;&gt; *(</span><span class="literal">',' </span><span class="special">&gt;&gt; </span><span class="identifier">real_p</span><span class="special">);<br> </span><span class="identifier">match</span><span class="special">&lt;&gt;</span><span class="identifier"> m </span><span class="special">= </span><span class="identifier">n_list</span><span class="special">.</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">scan</span><span class="special">);<br></span></code></pre>
+<span class="special"><br> </span><span class="identifier">rule_type n_list </span><span class="special">= </span><span class="identifier">real_p </span><span class="special">&gt;&gt; *(</span><span class="literal">',' </span><span class="special">&gt;&gt; </span><span class="identifier">real_p</span><span class="special">);<br> </span><span class="identifier">match</span><span class="special">&lt;&gt;</span><span class="identifier"> m </span><span class="special">= </span><span class="identifier">n_list</span><span class="special">.</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">scan</span><span class="special">);<br></span></code></pre>
 <a name="flush_multi_pass"></a>
 <h2>flush_multi_pass</h2>
 <p> There is a predefined pseudo-parser called flush_multi_pass. When this parser
@@ -209,7 +209,7 @@
   example of how to specify a custom multi_pass that wraps an istream_iterator&lt;char&gt;,
   and is slightly more efficient than the default because it uses the first_owner
   OwnershipPolicy and the no_check CheckingPolicy:</p>
-<pre> <code><span class="keyword">typedef </span><span class="identifier">multi_pass</span><span class="special">&lt;<br> </span><span class="identifier">istream_iterator</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">input_iterator</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">first_owner</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">no_check</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">std_deque<br> </span><span class="special">&gt; </span><span class="identifier">first_owner_multi_pass_t</span><
span class="special">;<br></span></code></pre>
+<pre> <code><span class="keyword">typedef </span><span class="identifier">multi_pass</span><span class="special">&lt;<br> </span><span class="identifier">istream_iterator</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">input_iterator</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">first_owner</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">no_check</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">std_deque<br> </span><span class="special">&gt; </span><span class="identifier">first_owner_multi_pass_type</spa
n><span class="special">;<br></span></code></pre>
 <p> The default template parameters for multi_pass are: input_iterator InputPolicy,
   ref_counted OwnershipPolicy, buf_id_check CheckingPolicy and std_deque StoragePolicy.
   So if you use multi_pass&lt;istream_iterator&lt;char&gt; &gt; you will get those
@@ -229,7 +229,7 @@
   This is standard practice in the STL. Also, it must supply a static variable
   called eof which is compared against to know whether the input has reached the
   end. Here is an example:</p>
-<pre> <code><span class="keyword">class </span><span class="identifier">my_functor<br> </span><span class="special">{<br> </span><span class="keyword">public</span><span class="special">:<br><br> </span><span class="keyword">typedef char </span><span class="identifier">result_type</span><span class="special">;<br><br> </span><span class="identifier">my_functor</span><span class="special">()<br> : </span><span class="identifier">c</span><span class="special">(</span><span class="literal">'A'</span><span class="special">) {}<br><br> </span><span class="keyword">char operator</span><span class="special">()() </span><span class="keyword">const<br> </span><span class="special">{<br> </span><span class="keyword">if </span><span class="special">(</span><span class="identifier">c </span><span class="special">== </span><span class="literal">'M'</span><span class="special">)<br> </span><span class="keyword">return </span><span class="identifier">eo
f</span><span class="special">;<br> </span><span class="keyword">else<br> return </span><span class="identifier">c</span><span class="special">++;<br> }<br><br> </span><span class="keyword">static </span><span class="identifier">result_type eof</span><span class="special">;<br><br> </span><span class="keyword">private</span><span class="special">:<br><br> </span><span class="keyword">char </span><span class="identifier">c</span><span class="special">;<br> };<br><br> </span><span class="identifier">my_functor</span><span class="special">::</span><span class="identifier">result_type my_functor</span><span class="special">::</span><span class="identifier">eof </span><span class="special">= </span><span class="literal">'\0'</span><span class="special">;<br><br> </span><span class="keyword">typedef </span><span class="identifier">multi_pass</span><span class="special">&lt;<br> </span><span class="identifier">my_functor</span><span class="special">,
<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">functor_input</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">first_owner</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">no_check</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">std_deque<br> </span><span class="special">&gt; </span><span class="identifier">functor_multi_pass_t</span><span class="special">;<br><br> </span><span class="identifier">functor_multi_pass_t first </span><span class="special">= </span><span class="identifier">functor_multi_pass_t</span><span class="special">(</span><span class="identifier">my_functor</span><span class="special">());<br>
   </span><span class="identifier">functor_multi_pass_t last</span><span class="special">;<br></span></code></pre>
+<pre> <code><span class="keyword">class </span><span class="identifier">my_functor<br> </span><span class="special">{<br> </span><span class="keyword">public</span><span class="special">:<br><br> </span><span class="keyword">typedef char </span><span class="identifier">result_type</span><span class="special">;<br><br> </span><span class="identifier">my_functor</span><span class="special">()<br> : </span><span class="identifier">c</span><span class="special">(</span><span class="literal">'A'</span><span class="special">) {}<br><br> </span><span class="keyword">char operator</span><span class="special">()() </span><span class="keyword">const<br> </span><span class="special">{<br> </span><span class="keyword">if </span><span class="special">(</span><span class="identifier">c </span><span class="special">== </span><span class="literal">'M'</span><span class="special">)<br> </span><span class="keyword">return </span><span class="identifier">eo
f</span><span class="special">;<br> </span><span class="keyword">else<br> return </span><span class="identifier">c</span><span class="special">++;<br> }<br><br> </span><span class="keyword">static </span><span class="identifier">result_type eof</span><span class="special">;<br><br> </span><span class="keyword">private</span><span class="special">:<br><br> </span><span class="keyword">char </span><span class="identifier">c</span><span class="special">;<br> };<br><br> </span><span class="identifier">my_functor</span><span class="special">::</span><span class="identifier">result_type my_functor</span><span class="special">::</span><span class="identifier">eof </span><span class="special">= </span><span class="literal">'\0'</span><span class="special">;<br><br> </span><span class="keyword">typedef </span><span class="identifier">multi_pass</span><span class="special">&lt;<br> </span><span class="identifier">my_functor</span><span class="special">,
<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">functor_input</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">first_owner</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">no_check</span><span class="special">,<br> </span><span class="identifier">multi_pass_policies</span><span class="special">::</span><span class="identifier">std_deque<br> </span><span class="special">&gt; </span><span class="identifier">functor_multi_pass_type</span><span class="special">;<br><br> </span><span class="identifier">functor_multi_pass_type first </span><span class="special">= </span><span class="identifier">functor_multi_pass_type</span><span class="special">(</span><span class="identifier">my_functor</span><span class="special">
());<br> </span><span class="identifier">functor_multi_pass_type last</span><span class="special">;<br></span></code></pre>
 <a name="how_to_write_policies_for_use_with_multi_pass"></a>
 <h3>How to write policies for use with multi_pass</h3>
 <a name="inputpolicy"></a>

Modified: branches/release/libs/spirit/doc/abstracts.qbk
==============================================================================
--- branches/release/libs/spirit/doc/abstracts.qbk (original)
+++ branches/release/libs/spirit/doc/abstracts.qbk 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -1,5 +1,5 @@
 [/==============================================================================
- Copyright (C) 2001-2008 Joel de Guzman
+ Copyright (C) 2001-2009 Joel de Guzman
     Copyright (C) 2001-2009 Hartmut Kaiser
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -14,7 +14,7 @@
 [/include abstracts/generating.qbk]
 [/include abstracts/primitives.qbk]
 [/include abstracts/operators.qbk]
-[/include abstracts/attributes.qbk]
+[include abstracts/attributes.qbk]
 [/include abstracts/semantic_actions.qbk]
 [/include abstracts/directives.qbk]
 [/include abstracts/rules.qbk]
@@ -22,6 +22,8 @@
 [/include abstracts/debugging.qbk]
 [/include abstracts/error_handling.qbk]
 [/include abstracts/parse_trees_and_asts.qbk]
+[include abstracts/indepth.qbk]
+[include abstracts/customization_points.qbk]
 
 [endsect]
 

Modified: branches/release/libs/spirit/doc/abstracts/peg.qbk
==============================================================================
--- branches/release/libs/spirit/doc/abstracts/peg.qbk (original)
+++ branches/release/libs/spirit/doc/abstracts/peg.qbk 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -18,8 +18,7 @@
 Like EBNF, PEG is a formal grammar for describing a formal language in
 terms of a set of rules used to recognize strings of this language.
 Unlike EBNF, PEGs have an exact interpretation. There is only one valid
-parse tree (see __ast__) for each PEG
-grammar.
+parse tree (see __ast__) for each PEG grammar.
 
 [heading Sequences]
 
@@ -38,8 +37,8 @@
 
 which means the character `x` must be followed by a digit.
 
-[note In Spirit.Qi, we use the `>>` for sequences since C++ does not
-allow juxtaposition]
+[note In __qi__, we use the `>>` for sequences since C++ does not
+allow juxtaposition, while in __karma__ we use the `<<` instead.]
 
 [heading Alternatives]
 
@@ -47,7 +46,7 @@
 
     a / b
 
-[note In Spirit.Qi, we use the `|` for alternatives just as in EBNF]
+[note In __qi__ and __karma__, we use the `|` for alternatives just as in EBNF.]
 
 Alternatives allow for choices. The expression above reads: try to match
 `a`. If `a` succeeds, success, if not try to match `b`. This is a bit of
@@ -69,8 +68,8 @@
     a*
     a+
 
-[note Spirit.Qi uses the prefix star and plus since there is no postfix
-star or plus in C++.]
+[note __qi__ and __karma__ use the prefix star and plus since there is no
+postfix star or plus in C++.]
 
 Here are the syntax diagrams:
 
@@ -106,6 +105,9 @@
 
 The expression reads: match `a` but not `b`.
 
+[note There is no difference operator in __karma__, as the concept does not
+make sense in the context of output generation.]
+
 [endsect]
 
 

Modified: branches/release/libs/spirit/doc/abstracts/syntax_diagram.qbk
==============================================================================
--- branches/release/libs/spirit/doc/abstracts/syntax_diagram.qbk (original)
+++ branches/release/libs/spirit/doc/abstracts/syntax_diagram.qbk 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -21,6 +21,11 @@
 representing __rd__ parsers which are essentially mutually recursive
 functions.
 
+Parsing Expression Grammars historically have been used for describing grammars
+for parsers only (hence the name). In __spirit__ we use a very similar notation
+for output generation as well. Almost all the concepts described here are
+equally applicable to __qi__ parsers as they are for __karma__ generators.
+
 [heading Elements]
 
 All diagrams have one entry and exit point. Arrows connect all possible

Modified: branches/release/libs/spirit/doc/acknowledgments.qbk
==============================================================================
--- branches/release/libs/spirit/doc/acknowledgments.qbk (original)
+++ branches/release/libs/spirit/doc/acknowledgments.qbk 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -18,9 +18,18 @@
 how to use Boost.Proto in the best possible way.
 
 [*Ben Hanson] for providing us with an early version of his Lexertl library,
-which is proposed to be included into Boost (as Boost.Lexer), but at the time
+which is proposed to be included into Boost (as Boost.Lexer). At the time
 of this writing the Boost review for this library is still pending.
 
+[*Francois Barel] for his silent but steady work on making and keeping Spirit
+compatible with all versions of gcc, older and newest ones. He not only
+contributed subrules to Spirit V2.1, but always keeps an eye on the small
+details which are so important to make a difference.
+
+[*Andreas Haberstroh] for proof reading the documentation and fixing those
+non-native-speaker-quirks we managed to introduce into the first versions of
+the documentation.
+
 __fixme__: Add more people
 
 

Modified: branches/release/libs/spirit/doc/concepts_template.qbk
==============================================================================
--- branches/release/libs/spirit/doc/concepts_template.qbk (original)
+++ branches/release/libs/spirit/doc/concepts_template.qbk 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -1,3 +1,10 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Hartmut Kaiser
+ Copyright (C) 2001-2009 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)
+===============================================================================/]
 
 [/------------------------------------------------------------------------------]
 [section XXX]

Modified: branches/release/libs/spirit/doc/faq.qbk
==============================================================================
--- branches/release/libs/spirit/doc/faq.qbk (original)
+++ branches/release/libs/spirit/doc/faq.qbk 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -20,7 +20,7 @@
 
 __spirit__ allows you to define a preprocessor constant disabling the usage
 of `BOOST_MPL_ASSERT_MSG()`, while switching to `BOOST_STATIC_ASSERT()` instead.
-For that you need define BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG=1 (either by
+For that you need define BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG=1. Do this by
 adding
 
     -DBOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG=1
@@ -29,10 +29,10 @@
 
     #define BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG 1
 
-into your code before any spirit headers get included).
+into your code before any Spirit headers get included.
 
 Using this trick has no adverse effects on any of the functionality of
-__spirit__. The only change you might see while using this workaround are less
+__spirit__. The only change you might see while using this workaround is less
 verbose error messages generated from static_assert.
 
 
@@ -116,7 +116,7 @@
 The last bit missing is __boost_phoenix__ (which currently still lives under the
 Spirit umbrella, but already has been accepted as a Boost library, so it will
 move away). __boost_phoenix__ is a library allowing to write functional style C++,
-which is interesting on itself, but as it initially has been developed for
+which is interesting in itself, but as it initially has been developed for
 Spirit, it is nicely integrated and very useful when it comes to writing
 semantic actions. I think using the boost/spirit/include/phoenix_... headers
 will be safe in the future as well, as we will probably redirect to the
@@ -155,13 +155,13 @@
 it does, it means that non-terminal can only be used with a skip parser of a
 compatible type. The error above arises when this is not the case, i.e.:
 
-* a non-terminal defined with a skip parser type is used without a skip parser
- (for example, a rule with a skip parser type is used inside a `lexeme`
+* a non-terminal defined with a skip parser type is used without a skip parser;
+ for example, a rule with a skip parser type is used inside a `lexeme`
   directive, or a grammar with a skip parser type is used in `parse` instead of
- `phrase_parse`),
-* or a non-terminal is used with a skip parser of an incompatible type
- (for example, a rule defined with one skip parser type calls a second rule
- defined with another, incompatible skip parser type).
+ `phrase_parse`,
+* or a non-terminal is used with a skip parser of an incompatible type;
+ for example, a rule defined with one skip parser type calls a second rule
+ defined with another, incompatible skip parser type.
 
 [note The same applies to __karma__, replacing 'skip parser' and `lexeme`
       by 'delimit generator' and `verbatim`. Similarily, corresponding error

Modified: branches/release/libs/spirit/doc/html/images/callouts/Thumbs.db
==============================================================================
Binary files. No diff available.

Modified: branches/release/libs/spirit/doc/html/images/lexerflow.png
==============================================================================
Binary files. No diff available.

Copied: branches/release/libs/spirit/doc/html/index.html (from r56618, /trunk/libs/spirit/doc/html/index.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/index.html (original)
+++ branches/release/libs/spirit/doc/html/index.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -34,7 +34,7 @@
 <div><p class="copyright">Copyright © 2001-2009 Joel
       de Guzman, Hartmut Kaiser</p></div>
 <div><div class="legalnotice" title="Legal Notice">
-<a name="id546188"></a><p>
+<a name="id558455"></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>
@@ -244,7 +244,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: October 04, 2009 at 16:24:44 GMT</small></p></td>
+<td align="left"><p><small>Last revised: October 06, 2009 at 18:11:16 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Copied: branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html (from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -136,7 +136,7 @@
           Compound Attribute Rules</a>.
         </p>
 <a name="spirit.abstracts.attributes.compound_attributes.the_attribute_of_sequence_parsers_and_generators"></a><h6>
-<a name="id557755"></a>
+<a name="id570311"></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>
@@ -251,7 +251,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.abstracts.attributes.compound_attributes.the_attribute_of_alternative_parsers_and_generators"></a><h6>
-<a name="id558537"></a>
+<a name="id571093"></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>

Copied: branches/release/libs/spirit/doc/html/spirit/abstracts/customize/is_container.html (from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/customize/is_container.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/abstracts/customize/is_container.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/customize/is_container.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
         if a Type Should be Treated as a Container (Qi and Karma)</a>
 </h4></div></div></div>
 <a name="spirit.abstracts.customize.is_container.is_container"></a><h6>
-<a name="id567125"></a>
+<a name="id579806"></a>
           <a class="link" href="is_container.html#spirit.abstracts.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.abstracts.customize.is_container.header"></a><h6>
-<a name="id568409"></a>
+<a name="id581244"></a>
           <a class="link" href="is_container.html#spirit.abstracts.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.abstracts.customize.is_container.namespace"></a><h6>
-<a name="id568495"></a>
+<a name="id581330"></a>
           <a class="link" href="is_container.html#spirit.abstracts.customize.is_container.namespace">Namespace</a>
         </h6>
 <div class="informaltable"><table class="table">
@@ -77,14 +77,14 @@
                 </td></tr></tbody>
 </table></div>
 <a name="spirit.abstracts.customize.is_container.synopsis"></a><h6>
-<a name="id568568"></a>
+<a name="id581403"></a>
           <a class="link" href="is_container.html#spirit.abstracts.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>
 <span class="keyword">struct</span> <span class="identifier">is_container</span><span class="special">;</span>
 </pre>
 <a name="spirit.abstracts.customize.is_container.template_parameters"></a><h6>
-<a name="id568635"></a>
+<a name="id581470"></a>
           <a class="link" href="is_container.html#spirit.abstracts.customize.is_container.template_parameters">Template
           parameters</a>
         </h6>
@@ -153,7 +153,7 @@
 </tbody>
 </table></div>
 <a name="spirit.abstracts.customize.is_container.notation"></a><h6>
-<a name="id568801"></a>
+<a name="id581636"></a>
           <a class="link" href="is_container.html#spirit.abstracts.customize.is_container.notation">Notation</a>
         </h6>
 <div class="variablelist">
@@ -166,7 +166,7 @@
 </dl>
 </div>
 <a name="spirit.abstracts.customize.is_container.expression_semantics"></a><h6>
-<a name="id568840"></a>
+<a name="id581675"></a>
           <a class="link" href="is_container.html#spirit.abstracts.customize.is_container.expression_semantics">Expression
           Semantics</a>
         </h6>
@@ -205,7 +205,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.abstracts.customize.is_container.predefined_specializations"></a><h6>
-<a name="id568970"></a>
+<a name="id581805"></a>
           <a class="link" href="is_container.html#spirit.abstracts.customize.is_container.predefined_specializations">Predefined
           Specializations</a>
         </h6>
@@ -282,7 +282,7 @@
 </tbody>
 </table></div>
 <a name="spirit.abstracts.customize.is_container.related_attribute_customization_points"></a><h6>
-<a name="id569341"></a>
+<a name="id582176"></a>
           <a class="link" href="is_container.html#spirit.abstracts.customize.is_container.related_attribute_customization_points">Related
           Attribute Customization Points</a>
         </h6>
@@ -435,7 +435,7 @@
 </tbody>
 </table></div>
 <a name="spirit.abstracts.customize.is_container.example"></a><h6>
-<a name="id569857"></a>
+<a name="id582692"></a>
           <a class="link" href="is_container.html#spirit.abstracts.customize.is_container.example">Example</a>
         </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/abstracts/customize/store_value/container_value.html (from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/customize/store_value/container_value.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/abstracts/customize/store_value/container_value.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/customize/store_value/container_value.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           Determine the Type to be stored in a Container (Qi)</a>
 </h5></div></div></div>
 <a name="spirit.abstracts.customize.store_value.container_value.container_value"></a><h6>
-<a name="id569936"></a>
+<a name="id582771"></a>
             <a class="link" href="container_value.html#spirit.abstracts.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.abstracts.customize.store_value.container_value.module_headers"></a><h6>
-<a name="id569983"></a>
+<a name="id582818"></a>
             <a class="link" href="container_value.html#spirit.abstracts.customize.store_value.container_value.module_headers">Module
             Headers</a>
           </h6>
@@ -60,7 +60,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.abstracts.customize.store_value.container_value.namespace"></a><h6>
-<a name="id570068"></a>
+<a name="id582903"></a>
             <a class="link" href="container_value.html#spirit.abstracts.customize.store_value.container_value.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -77,14 +77,14 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.abstracts.customize.store_value.container_value.synopsis"></a><h6>
-<a name="id570143"></a>
+<a name="id582978"></a>
             <a class="link" href="container_value.html#spirit.abstracts.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>
 <span class="keyword">struct</span> <span class="identifier">container_value</span><span class="special">;</span>
 </pre>
 <a name="spirit.abstracts.customize.store_value.container_value.template_parameters"></a><h6>
-<a name="id570211"></a>
+<a name="id583046"></a>
             <a class="link" href="container_value.html#spirit.abstracts.customize.store_value.container_value.template_parameters">Template
             parameters</a>
           </h6>
@@ -153,7 +153,7 @@
 </tbody>
 </table></div>
 <a name="spirit.abstracts.customize.store_value.container_value.notation"></a><h6>
-<a name="id570376"></a>
+<a name="id583211"></a>
             <a class="link" href="container_value.html#spirit.abstracts.customize.store_value.container_value.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -166,7 +166,7 @@
 </dl>
 </div>
 <a name="spirit.abstracts.customize.store_value.container_value.expression_semantics"></a><h6>
-<a name="id570416"></a>
+<a name="id583251"></a>
             <a class="link" href="container_value.html#spirit.abstracts.customize.store_value.container_value.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -206,7 +206,7 @@
             to represent a container.
           </p>
 <a name="spirit.abstracts.customize.store_value.container_value.predefined_specializations"></a><h6>
-<a name="id570520"></a>
+<a name="id583355"></a>
             <a class="link" href="container_value.html#spirit.abstracts.customize.store_value.container_value.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -296,7 +296,7 @@
 </tbody>
 </table></div>
 <a name="spirit.abstracts.customize.store_value.container_value.related_attribute_customization_points"></a><h6>
-<a name="id571410"></a>
+<a name="id584403"></a>
             <a class="link" href="container_value.html#spirit.abstracts.customize.store_value.container_value.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
@@ -338,7 +338,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.abstracts.customize.store_value.container_value.example"></a><h6>
-<a name="id571507"></a>
+<a name="id584500"></a>
             <a class="link" href="container_value.html#spirit.abstracts.customize.store_value.container_value.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/abstracts/indepth/parsers_indepth.html (from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/indepth/parsers_indepth.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/abstracts/indepth/parsers_indepth.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/indepth/parsers_indepth.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -197,7 +197,7 @@
 </dl>
 </div>
 <a name="spirit.abstracts.indepth.parsers_indepth.primitive_parsers"></a><h6>
-<a name="id562631"></a>
+<a name="id575307"></a>
           <a class="link" href="parsers_indepth.html#spirit.abstracts.indepth.parsers_indepth.primitive_parsers">Primitive
           Parsers</a>
         </h6>
@@ -449,7 +449,7 @@
           which does the actual work.
         </p>
 <a name="spirit.abstracts.indepth.parsers_indepth.composite_parsers"></a><h6>
-<a name="id564661"></a>
+<a name="id577337"></a>
           <a class="link" href="parsers_indepth.html#spirit.abstracts.indepth.parsers_indepth.composite_parsers">Composite
           Parsers</a>
         </h6>

Copied: branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html (from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -29,9 +29,9 @@
 </h3></div></div></div>
 <p>
         Parsing Expression Grammars (PEG)
- <sup>[<a name="id555977" href="#ftn.id555977" class="footnote">5</a>]</sup>
+ <sup>[<a name="id568806" href="#ftn.id568806" class="footnote">5</a>]</sup>
         are a derivative of Extended Backus-Naur Form (EBNF)
- <sup>[<a name="id555989" href="#ftn.id555989" class="footnote">6</a>]</sup>
+ <sup>[<a name="id568818" href="#ftn.id568818" class="footnote">6</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>
@@ -42,7 +42,7 @@
         Abstract Syntax Tree) for each PEG grammar.
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.sequences"></a><h5>
-<a name="id556009"></a>
+<a name="id568838"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.sequences">Sequences</a>
       </h5>
 <p>
@@ -84,7 +84,7 @@
         </p></td></tr>
 </table></div>
 <a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h5>
-<a name="id556141"></a>
+<a name="id568970"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.alternatives">Alternatives</a>
       </h5>
 <p>
@@ -128,7 +128,7 @@
         about this $$$).
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h5>
-<a name="id556561"></a>
+<a name="id569117"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.loops">Loops</a>
       </h5>
 <p>
@@ -191,7 +191,7 @@
         We will see more of these other mechanisms shortly.
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h5>
-<a name="id556709"></a>
+<a name="id569265"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.difference">Difference</a>
       </h5>
 <p>
@@ -217,11 +217,11 @@
 </table></div>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id555977" href="#id555977" class="para">5</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id568806" href="#id568806" class="para">5</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.id555989" href="#id555989" class="para">6</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id568818" href="#id568818" class="para">6</a>] </sup>
             Richard E. Pattis: EBNF: A Notation to Describe Syntax, http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf
           </p></div>
 </div>

Copied: branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html (from r56618, /trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,13 +28,13 @@
 </h3></div></div></div>
 <p>
         In the next section, we will deal with Parsing Expression Grammars (PEG)
- <sup>[<a name="id555534" href="#ftn.id555534" class="footnote">2</a>]</sup>
+ <sup>[<a name="id568363" href="#ftn.id568363" class="footnote">2</a>]</sup>
         , a variant of Extended Backus-Naur Form (EBNF)
- <sup>[<a name="id555546" href="#ftn.id555546" class="footnote">3</a>]</sup>
+ <sup>[<a name="id568375" href="#ftn.id568375" class="footnote">3</a>]</sup>
         with a different interpretation. It is easier to understand PEG using Syntax
         Diagrams. Syntax diagrams represent a grammar graphically. It was used extensibly
         by Niklaus Wirth
- <sup>[<a name="id555558" href="#ftn.id555558" class="footnote">4</a>]</sup>
+ <sup>[<a name="id568387" href="#ftn.id568387" class="footnote">4</a>]</sup>
         in the "Pascal User Manual". Syntax Diagrams are easily understandable
         with programmers due to its similarity to flow charts. The isomorphism of
         the diagrams and functions make it ideal for representing Recursive Descent
@@ -48,7 +48,7 @@
         parsers as they are for <span class="emphasis"><em>Spirit.Karma</em></span> generators.
       </p>
 <a name="spirit.abstracts.syntax_diagram.elements"></a><h5>
-<a name="id555585"></a>
+<a name="id568414"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.elements">Elements</a>
       </h5>
 <p>
@@ -92,7 +92,7 @@
         </p>
 </blockquote></div>
 <a name="spirit.abstracts.syntax_diagram.constructs"></a><h5>
-<a name="id555685"></a>
+<a name="id568514"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.constructs">Constructs</a>
       </h5>
 <p>
@@ -163,7 +163,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="id555846"></a>
+<a name="id568675"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.predicates">Predicates</a>
       </h5>
 <p>
@@ -218,14 +218,14 @@
       </p>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id555534" href="#id555534" class="para">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id568363" href="#id568363" class="para">2</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.id555546" href="#id555546" class="para">3</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id568375" href="#id568375" class="para">3</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.id555558" href="#id555558" class="para">4</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id568387" href="#id568387" class="para">4</a>] </sup>
             Niklaus Wirth: The Programming Language Pascal. (July 1973)
           </p></div>
 </div>

Copied: branches/release/libs/spirit/doc/html/spirit/acknowledgments.html (from r56618, /trunk/libs/spirit/doc/html/spirit/acknowledgments.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/acknowledgments.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/acknowledgments.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -58,7 +58,7 @@
       <span class="bold"><strong>FIXME</strong></span>: Add more people
     </p>
 <a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h4>
-<a name="id887362"></a>
+<a name="id901224"></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>

Copied: branches/release/libs/spirit/doc/html/spirit/faq.html (from r56618, /trunk/libs/spirit/doc/html/spirit/faq.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/faq.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/faq.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id878072"></a>
+<a name="id891355"></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>
@@ -64,7 +64,7 @@
       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="id878242"></a>
+<a name="id891526"></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>
@@ -172,7 +172,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="id878766"></a>
+<a name="id892050"></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>
@@ -186,7 +186,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="id878837"></a>
+<a name="id892121"></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>

Copied: branches/release/libs/spirit/doc/html/spirit/introduction.html (from r56618, /trunk/libs/spirit/doc/html/spirit/introduction.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/introduction.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/introduction.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -30,7 +30,7 @@
       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="id550068" href="#ftn.id550068" class="footnote">1</a>]</sup>
+ <sup>[<a name="id563977" href="#ftn.id563977" class="footnote">1</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
@@ -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="id550285"></a>
+<a name="id564194"></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="id551241"></a>
+<a name="id565150"></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>
@@ -259,7 +259,7 @@
       of the same <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code>:
     </p>
 <div class="table">
-<a name="id554313"></a><p class="title"><b>Table 2. Different output formats for `std::vector&lt;int&gt;`</b></p>
+<a name="id567142"></a><p class="title"><b>Table 2. Different output formats for `std::vector&lt;int&gt;`</b></p>
 <div class="table-contents"><table class="table" summary="Different output formats for `std::vector&lt;int&gt;`">
 <colgroup>
 <col>
@@ -378,7 +378,7 @@
       next table gives some related examples.
     </p>
 <div class="table">
-<a name="id554697"></a><p class="title"><b>Table 3. Different data types usable with the output format
+<a name="id567526"></a><p class="title"><b>Table 3. Different data types usable with the output format
     `*(int_ &lt;&lt; eol)`</b></p>
 <div class="table-contents"><table class="table" summary="Different data types usable with the output format
     `*(int_ &lt;&lt; eol)`">
@@ -452,7 +452,7 @@
 </div>
 <br class="table-break"><div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id550068" href="#id550068" class="para">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id563977" href="#id563977" class="para">1</a>] </sup>
           <a href="http://www.cl.cam.ac.uk/%7Emgk25/iso-14977.pdf" target="_top">ISO-EBNF</a>
         </p></div>
 </div>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -135,7 +135,7 @@
             <a class="link" href="double_performance.html#spirit.karma.double_performance" title="Figure 4. Performance comparison for a single double">figure</a>.
           </p>
 <div class="table">
-<a name="id835406"></a><p class="title"><b>Table 6. Performance comparison for a single double (all
+<a name="id848684"></a><p class="title"><b>Table 6. Performance comparison for a single double (all
           times in [s], 1000000 iterations)</b></p>
 <div class="table-contents"><table class="table" summary="Performance comparison for a single double (all
           times in [s], 1000000 iterations)">

Copied: branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -155,7 +155,7 @@
             <a class="link" href="format_performance.html#spirit.karma.format_performance" title="Figure 5. Performance comparison for a sequence of several items">figure</a>.
           </p>
 <div class="table">
-<a name="id838093"></a><p class="title"><b>Table 7. Performance comparison for a sequence of several
+<a name="id851389"></a><p class="title"><b>Table 7. Performance comparison for a sequence of several
           items (all times in [s], 1000000 iterations)</b></p>
 <div class="table-contents"><table class="table" summary="Performance comparison for a sequence of several
           items (all times in [s], 1000000 iterations)">

Copied: branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -125,7 +125,7 @@
             <a class="link" href="int_performance.html#spirit.karma.int_performance" title="Figure 3. Performance comparison for a single int">figure</a>.
           </p>
 <div class="table">
-<a name="id834352"></a><p class="title"><b>Table 5. Performance comparison for a single int (all
+<a name="id847631"></a><p class="title"><b>Table 5. Performance comparison for a single int (all
           times in [s], 10000000 iterations)</b></p>
 <div class="table-contents"><table class="table" summary="Performance comparison for a single int (all
           times in [s], 10000000 iterations)">

Copied: branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id713047"></a>
+<a name="id727021"></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="id714675"></a>
+<a name="id729741"></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>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -41,7 +41,7 @@
           <code class="computeroutput"><span class="identifier">lazy</span></code> generators.
         </p>
 <a name="spirit.karma.reference.auxiliary.module_header"></a><h6>
-<a name="id781915"></a>
+<a name="id794457"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id782006"></a>
+<a name="id795095"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.description">Description</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             using the customization point <code class="computeroutput"><span class="identifier">transform_attribute</span></code>.
           </p>
 <a name="spirit.karma.reference.auxiliary.attr_cast.header"></a><h6>
-<a name="id782602"></a>
+<a name="id795144"></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;
@@ -49,7 +49,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="id782677"></a>
+<a name="id795219"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -67,7 +67,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.model_of"></a><h6>
-<a name="id782756"></a>
+<a name="id795298"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.model_of">Model
             of</a>
           </h6>
@@ -94,7 +94,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.expression_semantics"></a><h6>
-<a name="id782838"></a>
+<a name="id795380"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -136,7 +136,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.attributes"></a><h6>
-<a name="id782970"></a>
+<a name="id795512"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -170,7 +170,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.complexity"></a><h6>
-<a name="id783066"></a>
+<a name="id795608"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -184,7 +184,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.example"></a><h6>
-<a name="id783097"></a>
+<a name="id795639"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           (<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="id784089"></a>
+<a name="id796631"></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="id784142"></a>
+<a name="id796684"></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="id784216"></a>
+<a name="id796758"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.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.eol.model_of"></a><h6>
-<a name="id784294"></a>
+<a name="id796836"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -79,7 +79,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.auxiliary.eol.expression_semantics"></a><h6>
-<a name="id784333"></a>
+<a name="id796875"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -120,7 +120,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eol.attributes"></a><h6>
-<a name="id784422"></a>
+<a name="id796964"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -154,7 +154,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eol.complexity"></a><h6>
-<a name="id784500"></a>
+<a name="id797042"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -171,7 +171,7 @@
             output.
           </p>
 <a name="spirit.karma.reference.auxiliary.eol.example"></a><h6>
-<a name="id784527"></a>
+<a name="id797069"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -33,7 +33,7 @@
             or to insert semantic actions into the generation process.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.description"></a><h6>
-<a name="id786421"></a>
+<a name="id798895"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             a multi-purpose generator that emits a yero length string.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.simple_form"></a><h6>
-<a name="id786445"></a>
+<a name="id798919"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.simple_form">Simple
             Form</a>
           </h6>
@@ -59,7 +59,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="id786546"></a>
+<a name="id799020"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.semantic_predicate">Semantic
             Predicate</a>
           </h6>
@@ -89,7 +89,7 @@
             the production will return early without ever touching rest.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.header"></a><h6>
-<a name="id786733"></a>
+<a name="id799207"></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;
@@ -99,7 +99,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="id786808"></a>
+<a name="id799282"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -117,7 +117,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eps.model_of"></a><h6>
-<a name="id786886"></a>
+<a name="id799360"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -144,7 +144,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.auxiliary.eps.expression_semantics"></a><h6>
-<a name="id786972"></a>
+<a name="id799446"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -213,7 +213,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eps.attributes"></a><h6>
-<a name="id787159"></a>
+<a name="id799633"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -273,7 +273,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eps.complexity"></a><h6>
-<a name="id787321"></a>
+<a name="id799795"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -289,7 +289,7 @@
             The complexity is constant as no output is generated.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.example"></a><h6>
-<a name="id787349"></a>
+<a name="id799823"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.auxiliary.lazy"></a><a class="link" href="lazy.html" title="Lazy (lazy)"> Lazy (<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="id788753"></a>
+<a name="id801364"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,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="id788777"></a>
+<a name="id801388"></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;
@@ -47,7 +47,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="id788852"></a>
+<a name="id801462"></a>
             <a class="link" href="lazy.html#spirit.karma.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.karma.reference.auxiliary.lazy.model_of"></a><h6>
-<a name="id788931"></a>
+<a name="id801541"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.model_of">Model
             of</a>
           </h6>
@@ -104,7 +104,7 @@
             Actions</a>).
           </p>
 <a name="spirit.karma.reference.auxiliary.lazy.expression_semantics"></a><h6>
-<a name="id789082"></a>
+<a name="id801693"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -171,7 +171,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.lazy.attributes"></a><h6>
-<a name="id789235"></a>
+<a name="id801845"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -223,7 +223,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.lazy.complexity"></a><h6>
-<a name="id789383"></a>
+<a name="id801994"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.complexity">Complexity</a>
           </h6>
 <p>
@@ -232,7 +232,7 @@
             <code class="computeroutput"><span class="identifier">fg</span></code>.
           </p>
 <a name="spirit.karma.reference.auxiliary.lazy.example"></a><h6>
-<a name="id789415"></a>
+<a name="id802025"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/binary.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/binary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id772176"></a>
+<a name="id784650"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id778376"></a>
+<a name="id792010"></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="id778392"></a>
+<a name="id792027"></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="id778467"></a>
+<a name="id792101"></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="id778679"></a>
+<a name="id792314"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.model_of">Model
             of</a>
           </h6>
@@ -130,7 +130,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.binary.binary_big.expression_semantics"></a><h6>
-<a name="id779886"></a>
+<a name="id792428"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -249,7 +249,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_big.attributes"></a><h6>
-<a name="id780127"></a>
+<a name="id792669"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -348,7 +348,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_big.complexity"></a><h6>
-<a name="id780415"></a>
+<a name="id792957"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -361,7 +361,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.binary.binary_big.example"></a><h6>
-<a name="id780439"></a>
+<a name="id792981"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id775969"></a>
+<a name="id788511"></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="id775986"></a>
+<a name="id788528"></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="id776060"></a>
+<a name="id788602"></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="id776270"></a>
+<a name="id788812"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.model_of">Model
             of</a>
           </h6>
@@ -130,7 +130,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.binary.binary_little.expression_semantics"></a><h6>
-<a name="id776382"></a>
+<a name="id788924"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -249,7 +249,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_little.attributes"></a><h6>
-<a name="id776621"></a>
+<a name="id790256"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -348,7 +348,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_little.complexity"></a><h6>
-<a name="id776909"></a>
+<a name="id790544"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -361,7 +361,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.binary.binary_little.example"></a><h6>
-<a name="id776933"></a>
+<a name="id790568"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id772260"></a>
+<a name="id784734"></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="id772277"></a>
+<a name="id784750"></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="id772351"></a>
+<a name="id784825"></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="id772602"></a>
+<a name="id785076"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.model_of">Model
             of</a>
           </h6>
@@ -141,7 +141,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.binary.binary_native.expression_semantics"></a><h6>
-<a name="id772737"></a>
+<a name="id785211"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -288,7 +288,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_native.attributes"></a><h6>
-<a name="id773035"></a>
+<a name="id785509"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -425,7 +425,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_native.complexity"></a><h6>
-<a name="id773489"></a>
+<a name="id785962"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -438,7 +438,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.binary.binary_native.example"></a><h6>
-<a name="id773513"></a>
+<a name="id785986"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/char.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/char.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id726950"></a>
+<a name="id739965"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id731425"></a>
+<a name="id744173"></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="id731475"></a>
+<a name="id746681"></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="id734008"></a>
+<a name="id746756"></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="id734374"></a>
+<a name="id747122"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.model_of">Model
             of</a>
           </h6>
@@ -156,7 +156,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.char.char_class.expression_semantics"></a><h6>
-<a name="id734442"></a>
+<a name="id747190"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -407,7 +407,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_class.attributes"></a><h6>
-<a name="id735374"></a>
+<a name="id748121"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.attributes">Attributes</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -435,7 +435,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_class.complexity"></a><h6>
-<a name="id735498"></a>
+<a name="id748246"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -452,7 +452,7 @@
             per invocation.
           </p>
 <a name="spirit.karma.reference.char.char_class.example"></a><h6>
-<a name="id735526"></a>
+<a name="id748274"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id727048"></a>
+<a name="id740063"></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="id727099"></a>
+<a name="id740113"></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="id727139"></a>
+<a name="id740154"></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="id727231"></a>
+<a name="id740245"></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="id727413"></a>
+<a name="id740428"></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="id727529"></a>
+<a name="id740544"></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="id727707"></a>
+<a name="id740722"></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="id727781"></a>
+<a name="id740796"></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="id727900"></a>
+<a name="id740915"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.model_of">Model
             of</a>
           </h6>
@@ -267,7 +267,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.char.char_generator.expression_semantics"></a><h6>
-<a name="id728054"></a>
+<a name="id741069"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -516,7 +516,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.char.char_generator.attributes"></a><h6>
-<a name="id728841"></a>
+<a name="id741856"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -675,7 +675,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_generator.complexity"></a><h6>
-<a name="id729780"></a>
+<a name="id742528"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -704,7 +704,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="id729963"></a>
+<a name="id742711"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/directive.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -50,7 +50,7 @@
           controlling case sensitivity (<code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code> and <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>), field width (<code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>), buffering (<code class="computeroutput"><span class="identifier">buffer</span><span class="special">[]</span></code>), and attribute handling (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>).
         </p>
 <a name="spirit.karma.reference.directive.module_header"></a><h6>
-<a name="id790781"></a>
+<a name="id803392"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           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="id790910"></a>
+<a name="id804613"></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="id790927"></a>
+<a name="id804630"></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="id791150"></a>
+<a name="id804853"></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="id791306"></a>
+<a name="id805009"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.model_of">Model
             of</a>
           </h6>
@@ -136,7 +136,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.alignment.expression_semantics"></a><h6>
-<a name="id791456"></a>
+<a name="id805159"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -417,7 +417,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.alignment.attributes"></a><h6>
-<a name="id792496"></a>
+<a name="id806199"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.attributes">Attributes</a>
           </h6>
 <p>
@@ -640,7 +640,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.alignment.complexity"></a><h6>
-<a name="id795827"></a>
+<a name="id808284"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -658,7 +658,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.alignment.example"></a><h6>
-<a name="id795858"></a>
+<a name="id808315"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           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="id809385"></a>
+<a name="id821586"></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="id809414"></a>
+<a name="id821615"></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="id809554"></a>
+<a name="id821755"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.model_of">Model
             of</a>
           </h6>
@@ -94,7 +94,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.buffer.expression_semantics"></a><h6>
-<a name="id809643"></a>
+<a name="id821844"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -150,7 +150,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.buffer.attributes"></a><h6>
-<a name="id809816"></a>
+<a name="id822017"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.attributes">Attributes</a>
           </h6>
 <p>
@@ -192,7 +192,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.buffer.complexity"></a><h6>
-<a name="id809987"></a>
+<a name="id822188"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -207,7 +207,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.buffer.example"></a><h6>
-<a name="id810011"></a>
+<a name="id822212"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           Controlling Automatic Delimiting (<code class="computeroutput"><span class="identifier">verbatim</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="id801444"></a>
+<a name="id813986"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             while 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="id801504"></a>
+<a name="id814046"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.header">Header</a>
           </h6>
 <p>
@@ -58,7 +58,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="id801660"></a>
+<a name="id814202"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -84,7 +84,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.delimit.model_of"></a><h6>
-<a name="id801778"></a>
+<a name="id814320"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.model_of">Model
             of</a>
           </h6>
@@ -118,7 +118,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.delimit.expression_semantics"></a><h6>
-<a name="id801904"></a>
+<a name="id814446"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -194,7 +194,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.delimit.attributes"></a><h6>
-<a name="id802138"></a>
+<a name="id814680"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.attributes">Attributes</a>
           </h6>
 <p>
@@ -270,7 +270,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.delimit.complexity"></a><h6>
-<a name="id802593"></a>
+<a name="id815135"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -286,7 +286,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.delimit.example"></a><h6>
-<a name="id802638"></a>
+<a name="id815180"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           the Maximum Field Wield (<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="id806612"></a>
+<a name="id819905"></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="id806640"></a>
+<a name="id819933"></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="id806780"></a>
+<a name="id820073"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.model_of">Model
             of</a>
           </h6>
@@ -93,7 +93,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.maxwidth.expression_semantics"></a><h6>
-<a name="id806893"></a>
+<a name="id820186"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -182,7 +182,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.maxwidth.attributes"></a><h6>
-<a name="id807158"></a>
+<a name="id820451"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.attributes">Attributes</a>
           </h6>
 <p>
@@ -242,7 +242,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.maxwidth.complexity"></a><h6>
-<a name="id807465"></a>
+<a name="id820758"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -258,7 +258,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.maxwidth.example"></a><h6>
-<a name="id807507"></a>
+<a name="id820800"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.omit.description"></a><h6>
-<a name="id810975"></a>
+<a name="id823176"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             any output.
           </p>
 <a name="spirit.karma.reference.directive.omit.header"></a><h6>
-<a name="id810992"></a>
+<a name="id823193"></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;
@@ -60,7 +60,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.omit.model_of"></a><h6>
-<a name="id811132"></a>
+<a name="id823333"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.model_of">Model
             of</a>
           </h6>
@@ -87,7 +87,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.omit.expression_semantics"></a><h6>
-<a name="id811221"></a>
+<a name="id823422"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -128,7 +128,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.omit.attributes"></a><h6>
-<a name="id811335"></a>
+<a name="id823536"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.attributes">Attributes</a>
           </h6>
 <p>
@@ -170,7 +170,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.omit.complexity"></a><h6>
-<a name="id811523"></a>
+<a name="id825908"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -184,7 +184,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.omit.example"></a><h6>
-<a name="id811554"></a>
+<a name="id825939"></a>
             <a class="link" href="omit.html#spirit.karma.reference.directive.omit.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           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="id797485"></a>
+<a name="id809959"></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="id797534"></a>
+<a name="id810008"></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="id797609"></a>
+<a name="id810082"></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="id797725"></a>
+<a name="id810199"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.model_of">Model
             of</a>
           </h6>
@@ -120,7 +120,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.repeat.expression_semantics"></a><h6>
-<a name="id797847"></a>
+<a name="id810321"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -237,7 +237,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.repeat.attributes"></a><h6>
-<a name="id798263"></a>
+<a name="id810736"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.attributes">Attributes</a>
           </h6>
 <p>
@@ -385,7 +385,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.repeat.complexity"></a><h6>
-<a name="id799139"></a>
+<a name="id811612"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -400,7 +400,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.repeat.example"></a><h6>
-<a name="id799163"></a>
+<a name="id811636"></a>
             <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           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="id804439"></a>
+<a name="id816708"></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="id804503"></a>
+<a name="id816772"></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="id804578"></a>
+<a name="id816847"></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="id804685"></a>
+<a name="id816954"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.model_of">Model
             of</a>
           </h6>
@@ -109,7 +109,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.upperlower.expression_semantics"></a><h6>
-<a name="id804803"></a>
+<a name="id817072"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -219,7 +219,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.upperlower.attributes"></a><h6>
-<a name="id805405"></a>
+<a name="id817674"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.attributes">Attributes</a>
           </h6>
 <p>
@@ -279,7 +279,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.upperlower.complexity"></a><h6>
-<a name="id805733"></a>
+<a name="id818002"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -296,7 +296,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.upperlower.example"></a><h6>
-<a name="id805793"></a>
+<a name="id818062"></a>
             <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id722568"></a>
+<a name="id735501"></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="id722615"></a>
+<a name="id735548"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.refinement_of">Refinement
             of</a>
           </h6>
@@ -66,7 +66,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.generator_concepts.binarygenerator.valid_expressions"></a><h6>
-<a name="id722692"></a>
+<a name="id735625"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -135,7 +135,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.binarygenerator.type_expressions"></a><h6>
-<a name="id722854"></a>
+<a name="id735787"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.type_expressions">Type
             Expressions</a>
           </h6>
@@ -200,7 +200,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.binarygenerator.invariants"></a><h6>
-<a name="id723053"></a>
+<a name="id735986"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.invariants">Invariants</a>
           </h6>
 <p>
@@ -216,7 +216,7 @@
 </li>
 </ul></div>
 <a name="spirit.karma.reference.generator_concepts.binarygenerator.models"></a><h6>
-<a name="id723190"></a>
+<a name="id736123"></a>
             <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.models">Models</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id719512"></a>
+<a name="id733537"></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="id719767"></a>
+<a name="id733792"></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="id720027"></a>
+<a name="id734053"></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="id721385"></a>
+<a name="id734318"></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="id721455"></a>
+<a name="id734388"></a>
             <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.models">Models</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id723245"></a>
+<a name="id736178"></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="id723276"></a>
+<a name="id736209"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.refinement_of">Refinement
             of</a>
           </h6>
@@ -64,7 +64,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.generator_concepts.narygenerator.valid_expressions"></a><h6>
-<a name="id723562"></a>
+<a name="id737601"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -115,7 +115,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.narygenerator.type_expressions"></a><h6>
-<a name="id723682"></a>
+<a name="id737721"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.type_expressions">Type
             Expressions</a>
           </h6>
@@ -168,7 +168,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.narygenerator.invariants"></a><h6>
-<a name="id723849"></a>
+<a name="id737887"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.invariants">Invariants</a>
           </h6>
 <p>
@@ -180,7 +180,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="id723934"></a>
+<a name="id737973"></a>
             <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.models">Models</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id721497"></a>
+<a name="id734430"></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="id721517"></a>
+<a name="id734450"></a>
             <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.refinement_of">Refinement
             of</a>
           </h6>
@@ -49,7 +49,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.generator_concepts.primitivegenerator.post_delimit"></a><h6>
-<a name="id721551"></a>
+<a name="id734484"></a>
             <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.post_delimit">Post-delimit</a>
           </h6>
 <p>
@@ -62,7 +62,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="id721624"></a>
+<a name="id734557"></a>
             <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.type_expressions">Type
             Expressions</a>
           </h6>
@@ -101,7 +101,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.primitivegenerator.models"></a><h6>
-<a name="id721758"></a>
+<a name="id734691"></a>
             <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.models">Models</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id721850"></a>
+<a name="id734782"></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="id721870"></a>
+<a name="id734803"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.refinement_of">Refinement
             of</a>
           </h6>
@@ -63,7 +63,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.generator_concepts.unarygenerator.valid_expressions"></a><h6>
-<a name="id721947"></a>
+<a name="id734880"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -113,7 +113,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.unarygenerator.type_expressions"></a><h6>
-<a name="id722062"></a>
+<a name="id734995"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.type_expressions">Type
             Expressions</a>
           </h6>
@@ -166,7 +166,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.generator_concepts.unarygenerator.invariants"></a><h6>
-<a name="id722228"></a>
+<a name="id735160"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.invariants">Invariants</a>
           </h6>
 <p>
@@ -177,7 +177,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="id722313"></a>
+<a name="id735246"></a>
             <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.models">Models</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.karma_basics"></a><a class="link" href="karma_basics.html" title="Basics"> Basics</a>
 </h4></div></div></div>
 <a name="spirit.karma.reference.karma_basics.lazy_argument"></a><h6>
-<a name="id724008"></a>
+<a name="id738047"></a>
           <a class="link" href="karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
           Argument</a>
         </h6>
@@ -53,7 +53,7 @@
           Actions</a>).
         </p>
 <a name="spirit.karma.reference.karma_basics.character_encoding_namespace"></a><h6>
-<a name="id724149"></a>
+<a name="id738187"></a>
           <a class="link" href="karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
           Encoding Namespace</a>
         </h6>
@@ -114,7 +114,7 @@
           </li>
 </ul></div>
 <a name="spirit.karma.reference.karma_basics.examples"></a><h6>
-<a name="id724332"></a>
+<a name="id738371"></a>
           <a class="link" href="karma_basics.html#spirit.karma.reference.karma_basics.examples">Examples</a>
         </h6>
 <p>
@@ -210,7 +210,7 @@
 <p>
         </p>
 <a name="spirit.karma.reference.karma_basics.models"></a><h6>
-<a name="id725703"></a>
+<a name="id739815"></a>
           <a class="link" href="karma_basics.html#spirit.karma.reference.karma_basics.models">Models</a>
         </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id739487"></a>
+<a name="id753320"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           Generators (<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="id760612"></a>
+<a name="id774314"></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="id760666"></a>
+<a name="id774368"></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="id760740"></a>
+<a name="id774443"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -93,7 +93,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.boolean.synopsis"></a><h6>
-<a name="id760881"></a>
+<a name="id775676"></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>
@@ -102,7 +102,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="id760950"></a>
+<a name="id775745"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.template_parameters">Template
             parameters</a>
           </h6>
@@ -167,7 +167,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.boolean.model_of"></a><h6>
-<a name="id761091"></a>
+<a name="id775886"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.model_of">Model
             of</a>
           </h6>
@@ -197,7 +197,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.numeric.boolean.expression_semantics"></a><h6>
-<a name="id761196"></a>
+<a name="id775991"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -352,7 +352,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.boolean.additional_requirements"></a><h6>
-<a name="id761654"></a>
+<a name="id776449"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -368,7 +368,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="id761732"></a>
+<a name="id776527"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -483,7 +483,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.boolean.boolean_formatting_policies"></a><h6>
-<a name="id762106"></a>
+<a name="id776901"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.boolean_formatting_policies">Boolean
             Formatting Policies</a>
           </h6>
@@ -517,7 +517,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.booelan_formatting_policy_expression_semantics"></a><h6>
-<a name="id762528"></a>
+<a name="id777323"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.booelan_formatting_policy_expression_semantics">Booelan
             Formatting Policy Expression Semantics</a>
           </h6>
@@ -668,7 +668,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.boolean.complexity"></a><h6>
-<a name="id764849"></a>
+<a name="id778142"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -682,7 +682,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.numeric.boolean.example"></a><h6>
-<a name="id764880"></a>
+<a name="id778173"></a>
             <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id750859"></a>
+<a name="id765040"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.description">Description</a>
           </h6>
 <p>
@@ -43,7 +43,7 @@
             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="id750902"></a>
+<a name="id765083"></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;
@@ -53,7 +53,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="id750977"></a>
+<a name="id765157"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -106,14 +106,14 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.real_number.synopsis"></a><h6>
-<a name="id751194"></a>
+<a name="id765374"></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="id751261"></a>
+<a name="id765442"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.template_parameters">Template
             parameters</a>
           </h6>
@@ -182,7 +182,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="id751417"></a>
+<a name="id765598"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.model_of">Model
             of</a>
           </h6>
@@ -211,7 +211,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.numeric.real_number.expression_semantics"></a><h6>
-<a name="id751519"></a>
+<a name="id765700"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -359,7 +359,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.real_number.additional_requirements"></a><h6>
-<a name="id752063"></a>
+<a name="id766243"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -398,7 +398,7 @@
             </li>
 </ul></div>
 <a name="spirit.karma.reference.numeric.real_number.attributes"></a><h6>
-<a name="id752372"></a>
+<a name="id766553"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -569,7 +569,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.real_number.real_number_formatting_policies"></a><h6>
-<a name="id752917"></a>
+<a name="id769464"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.real_number_formatting_policies">Real
             Number Formatting Policies</a>
           </h6>
@@ -601,7 +601,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="id754477"></a>
+<a name="id769818"></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>
@@ -1121,7 +1121,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.real_number.complexity"></a><h6>
-<a name="id759266"></a>
+<a name="id772969"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -1135,7 +1135,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.numeric.real_number.example"></a><h6>
-<a name="id759298"></a>
+<a name="id773000"></a>
             <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -29,7 +29,7 @@
           etc.)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.numeric.signed_int.description"></a><h6>
-<a name="id745293"></a>
+<a name="id760491"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.description">Description</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
             the requirements, 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="id745361"></a>
+<a name="id760560"></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="id745436"></a>
+<a name="id760634"></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="id745743"></a>
+<a name="id760941"></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="id745827"></a>
+<a name="id761025"></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="id745994"></a>
+<a name="id761192"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.model_of">Model
             of</a>
           </h6>
@@ -268,7 +268,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.numeric.signed_int.expression_semantics"></a><h6>
-<a name="id746180"></a>
+<a name="id761378"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -445,7 +445,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.signed_int.additional_requirements"></a><h6>
-<a name="id746814"></a>
+<a name="id762013"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -501,7 +501,7 @@
             </li>
 </ul></div>
 <a name="spirit.karma.reference.numeric.signed_int.attributes"></a><h6>
-<a name="id748925"></a>
+<a name="id763106"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -700,7 +700,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.signed_int.complexity"></a><h6>
-<a name="id749567"></a>
+<a name="id763748"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -714,7 +714,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.numeric.signed_int.example"></a><h6>
-<a name="id749598"></a>
+<a name="id763779"></a>
             <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -29,7 +29,7 @@
           etc.)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.description"></a><h6>
-<a name="id739578"></a>
+<a name="id753411"></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="id739628"></a>
+<a name="id753461"></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="id739703"></a>
+<a name="id753536"></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="id740128"></a>
+<a name="id753961"></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="id740197"></a>
+<a name="id754030"></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="id740324"></a>
+<a name="id754157"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.model_of">Model
             of</a>
           </h6>
@@ -258,7 +258,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.numeric.unsigned_int.expression_semantics"></a><h6>
-<a name="id740476"></a>
+<a name="id754309"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -466,7 +466,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.additional_requirements"></a><h6>
-<a name="id742255"></a>
+<a name="id756082"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -520,7 +520,7 @@
             </li>
 </ul></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.attributes"></a><h6>
-<a name="id742669"></a>
+<a name="id756496"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -759,7 +759,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.complexity"></a><h6>
-<a name="id743463"></a>
+<a name="id757290"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -773,7 +773,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.numeric.unsigned_int.example"></a><h6>
-<a name="id743494"></a>
+<a name="id757321"></a>
             <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/operator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -57,7 +57,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="id812954"></a>
+<a name="id827340"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id817183"></a>
+<a name="id830476"></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="id817200"></a>
+<a name="id830493"></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="id817275"></a>
+<a name="id830568"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.model_of">Model
             of</a>
           </h6>
@@ -62,7 +62,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.alternative.expression_semantics"></a><h6>
-<a name="id817308"></a>
+<a name="id830601"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -114,7 +114,7 @@
             an element succeeded.
           </p>
 <a name="spirit.karma.reference.operator.alternative.attributes"></a><h6>
-<a name="id817420"></a>
+<a name="id830713"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.attributes">Attributes</a>
           </h6>
 <p>
@@ -181,7 +181,7 @@
             an example of this behavior.
           </p>
 <a name="spirit.karma.reference.operator.alternative.complexity"></a><h6>
-<a name="id817939"></a>
+<a name="id831232"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -197,7 +197,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.alternative.example"></a><h6>
-<a name="id817963"></a>
+<a name="id831256"></a>
             <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           Predicate (<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="id828439"></a>
+<a name="id842827"></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="id828458"></a>
+<a name="id842846"></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="id828532"></a>
+<a name="id842921"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.model_of">Model
             of</a>
           </h6>
@@ -61,7 +61,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.and_predicate.expression_semantics"></a><h6>
-<a name="id828568"></a>
+<a name="id842957"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -108,7 +108,7 @@
             its embedded generator into a discarding device.
           </p>
 <a name="spirit.karma.reference.operator.and_predicate.attributes"></a><h6>
-<a name="id828672"></a>
+<a name="id843060"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.attributes">Attributes</a>
           </h6>
 <p>
@@ -161,7 +161,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.and_predicate.complexity"></a><h6>
-<a name="id828820"></a>
+<a name="id843209"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -176,7 +176,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.and_predicate.example"></a><h6>
-<a name="id828847"></a>
+<a name="id843235"></a>
             <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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.kleene.description"></a><h6>
-<a name="id819323"></a>
+<a name="id832616"></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="id819340"></a>
+<a name="id832633"></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="id819414"></a>
+<a name="id832707"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.model_of">Model
             of</a>
           </h6>
@@ -61,7 +61,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.kleene.expression_semantics"></a><h6>
-<a name="id819453"></a>
+<a name="id832746"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -115,7 +115,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.kleene.attributes"></a><h6>
-<a name="id819567"></a>
+<a name="id832860"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.attributes">Attributes</a>
           </h6>
 <p>
@@ -218,7 +218,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.kleene.complexity"></a><h6>
-<a name="id819906"></a>
+<a name="id833199"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -235,7 +235,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.kleene.example"></a><h6>
-<a name="id819930"></a>
+<a name="id833223"></a>
             <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/list.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/list.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/list.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/list.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.operator.list"></a><a class="link" href="list.html" title="Lists (a % b)"> Lists (<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.karma.reference.operator.list.description"></a><h6>
-<a name="id824148"></a>
+<a name="id838667"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             at least once.
           </p>
 <a name="spirit.karma.reference.operator.list.header"></a><h6>
-<a name="id824165"></a>
+<a name="id838684"></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;
@@ -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.list.model_of"></a><h6>
-<a name="id824239"></a>
+<a name="id838758"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -60,7 +60,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.list.expression_semantics"></a><h6>
-<a name="id824278"></a>
+<a name="id838796"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -127,7 +127,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.list.attributes"></a><h6>
-<a name="id824490"></a>
+<a name="id839009"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.attributes">Attributes</a>
           </h6>
 <p>
@@ -217,7 +217,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.list.complexity"></a><h6>
-<a name="id824832"></a>
+<a name="id839351"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -233,7 +233,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.list.example"></a><h6>
-<a name="id824856"></a>
+<a name="id839375"></a>
             <a class="link" href="list.html#spirit.karma.reference.operator.list.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           Predicate (<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="id832094"></a>
+<a name="id845373"></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="id832113"></a>
+<a name="id845392"></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="id832188"></a>
+<a name="id845467"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.model_of">Model
             of</a>
           </h6>
@@ -61,7 +61,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.not_predicate.expression_semantics"></a><h6>
-<a name="id832224"></a>
+<a name="id845503"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -108,7 +108,7 @@
             its embedded generator into a discarding device.
           </p>
 <a name="spirit.karma.reference.operator.not_predicate.attributes"></a><h6>
-<a name="id832327"></a>
+<a name="id845606"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.attributes">Attributes</a>
           </h6>
 <p>
@@ -161,7 +161,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.not_predicate.complexity"></a><h6>
-<a name="id832476"></a>
+<a name="id845755"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -176,7 +176,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.not_predicate.example"></a><h6>
-<a name="id832502"></a>
+<a name="id845781"></a>
             <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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.optional.description"></a><h6>
-<a name="id825723"></a>
+<a name="id840241"></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="id825739"></a>
+<a name="id840258"></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="id825814"></a>
+<a name="id840332"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.model_of">Model
             of</a>
           </h6>
@@ -60,7 +60,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.optional.expression_semantics"></a><h6>
-<a name="id825852"></a>
+<a name="id840371"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -102,7 +102,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.operator.optional.attributes"></a><h6>
-<a name="id825952"></a>
+<a name="id840470"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.attributes">Attributes</a>
           </h6>
 <p>
@@ -189,7 +189,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.optional.complexity"></a><h6>
-<a name="id827511"></a>
+<a name="id841900"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -204,7 +204,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.optional.example"></a><h6>
-<a name="id827535"></a>
+<a name="id841924"></a>
             <a class="link" href="optional.html#spirit.karma.reference.operator.optional.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.operator.plus"></a><a class="link" href="plus.html" title="Plus (+a)"> Plus (<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="id822113"></a>
+<a name="id835265"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             executed at least once.
           </p>
 <a name="spirit.karma.reference.operator.plus.header"></a><h6>
-<a name="id822130"></a>
+<a name="id835282"></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;
@@ -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.plus.model_of"></a><h6>
-<a name="id822204"></a>
+<a name="id835356"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -59,7 +59,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.plus.expression_semantics"></a><h6>
-<a name="id822242"></a>
+<a name="id835394"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -116,7 +116,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.plus.attributes"></a><h6>
-<a name="id822367"></a>
+<a name="id835519"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.attributes">Attributes</a>
           </h6>
 <p>
@@ -219,7 +219,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.plus.complexity"></a><h6>
-<a name="id822707"></a>
+<a name="id835859"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -235,7 +235,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.plus.example"></a><h6>
-<a name="id822731"></a>
+<a name="id835883"></a>
             <a class="link" href="plus.html#spirit.karma.reference.operator.plus.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id813055"></a>
+<a name="id827440"></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="id813072"></a>
+<a name="id827457"></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="id813146"></a>
+<a name="id827532"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.model_of">Model
             of</a>
           </h6>
@@ -62,7 +62,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.sequence.expression_semantics"></a><h6>
-<a name="id813182"></a>
+<a name="id827568"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -134,7 +134,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.operator.sequence.attributes"></a><h6>
-<a name="id813365"></a>
+<a name="id827750"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.attributes">Attributes</a>
           </h6>
 <p>
@@ -212,7 +212,7 @@
             the attribute supplied
           </p>
 <a name="spirit.karma.reference.operator.sequence.complexity"></a><h6>
-<a name="id816375"></a>
+<a name="id829668"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -227,7 +227,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.operator.sequence.example"></a><h6>
-<a name="id816399"></a>
+<a name="id829692"></a>
             <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/stream.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/stream.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/stream.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/stream.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -35,7 +35,7 @@
           for output generation.
         </p>
 <a name="spirit.karma.reference.stream.header"></a><h6>
-<a name="id766161"></a>
+<a name="id779454"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           etc.)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.stream.stream.description"></a><h6>
-<a name="id766259"></a>
+<a name="id779552"></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="id766368"></a>
+<a name="id779661"></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="id766443"></a>
+<a name="id779736"></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="id766560"></a>
+<a name="id779853"></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="id766614"></a>
+<a name="id779907"></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="id766707"></a>
+<a name="id780819"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -161,7 +161,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.stream.stream.expression_semantics"></a><h6>
-<a name="id768436"></a>
+<a name="id780909"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -331,7 +331,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.stream.stream.additional_requirements"></a><h6>
-<a name="id768934"></a>
+<a name="id781407"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.additional_requirements">Additional
             Requirements</a>
           </h6>
@@ -374,7 +374,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.stream.stream.attributes"></a><h6>
-<a name="id769151"></a>
+<a name="id781625"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -499,7 +499,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.stream.stream.complexity"></a><h6>
-<a name="id769548"></a>
+<a name="id782022"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -512,7 +512,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.stream.stream.example"></a><h6>
-<a name="id769572"></a>
+<a name="id782046"></a>
             <a class="link" href="stream.html#spirit.karma.reference.stream.stream.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/string.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/string.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/string.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/string.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -33,7 +33,7 @@
           generator.
         </p>
 <a name="spirit.karma.reference.string.module_header"></a><h6>
-<a name="id736812"></a>
+<a name="id749553"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/karma/reference/string/string.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/reference/string/string.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/reference/string/string.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/string/string.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.string.string"></a><a class="link" href="string.html" title="String (string, lit)"> String (<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="id736911"></a>
+<a name="id749651"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.description">Description</a>
           </h6>
 <p>
@@ -58,7 +58,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="id737140"></a>
+<a name="id749881"></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;
@@ -68,7 +68,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="id737214"></a>
+<a name="id749955"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -98,7 +98,7 @@
             Encoding Namespace</a> used by the corresponding string generator.
           </p>
 <a name="spirit.karma.reference.string.string.model_of"></a><h6>
-<a name="id737333"></a>
+<a name="id750074"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -132,7 +132,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.string.string.expression_semantics"></a><h6>
-<a name="id737451"></a>
+<a name="id750191"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -234,7 +234,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.string.string.attributes"></a><h6>
-<a name="id737764"></a>
+<a name="id750505"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -323,7 +323,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.string.string.complexity"></a><h6>
-<a name="id738064"></a>
+<a name="id750805"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -336,7 +336,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.string.string.example"></a><h6>
-<a name="id738088"></a>
+<a name="id750829"></a>
             <a class="link" href="string.html#spirit.karma.reference.string.string.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -67,7 +67,7 @@
           Let's try to cover some basic library features first.
         </p>
 <a name="spirit.karma.tutorials.karma_easier_complex.making_numeric_generators_fail"></a><h6>
-<a name="id693259"></a>
+<a name="id707107"></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>
@@ -116,7 +116,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.karma.tutorials.karma_easier_complex.predicates___the_conditionals_for_output_generators"></a><h6>
-<a name="id693547"></a>
+<a name="id707395"></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>
@@ -167,7 +167,7 @@
           emitted by the generators they are applied to.
         </p>
 <a name="spirit.karma.tutorials.karma_easier_complex.ignoring_supplied_attributes"></a><h6>
-<a name="id698666"></a>
+<a name="id713606"></a>
           <a class="link" href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.ignoring_supplied_attributes">Ignoring
           Supplied Attributes</a>
         </h6>
@@ -194,7 +194,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.karma.tutorials.karma_easier_complex.putting_everything_together"></a><h6>
-<a name="id698744"></a>
+<a name="id713684"></a>
           <a class="link" href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.putting_everything_together">Putting
           everything together</a>
         </h6>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id688603"></a>
+<a name="id702574"></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>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -276,7 +276,7 @@
           The examples above can be found here: actions.cpp
         </p>
 <a name="spirit.karma.tutorials.semantic_actions.phoenix"></a><h6>
-<a name="id691929"></a>
+<a name="id705776"></a>
           <a class="link" href="semantic_actions.html#spirit.karma.tutorials.semantic_actions.phoenix">Phoenix</a>
         </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html (from r56618, /trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id688729"></a>
+<a name="id702700"></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="id688773"></a>
+<a name="id702744"></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="id688858"></a>
+<a name="id702829"></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="id688906"></a>
+<a name="id702877"></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="id689040"></a>
+<a name="id703011"></a>
           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.let_s_generate_">Let's
           Generate!</a>
         </h6>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -50,7 +50,7 @@
             of the <span class="emphasis"><em>Spirit.Lex</em></span> library.
           </p>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token"></a><h6>
-<a name="id849981"></a>
+<a name="id863741"></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>
@@ -186,7 +186,7 @@
             time.
           </p>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition"></a><h6>
-<a name="id850474"></a>
+<a name="id864234"></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>
@@ -259,7 +259,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_"></a><h6>
-<a name="id850725"></a>
+<a name="id864485"></a>
             <a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_">Examples
             of using <a class="link" href="../../reference/token.html" title="Token Class"><code class="computeroutput"><span class="identifier">lexertl_token</span><span class="special">&lt;&gt;</span></code></a></a>
           </h6>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -105,7 +105,7 @@
 <span class="keyword">void</span> <span class="identifier">f</span> <span class="special">();</span>
 </pre>
 <a name="spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action"></a><h6>
-<a name="id855651"></a>
+<a name="id869125"></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>
@@ -120,7 +120,7 @@
           of the available functionality.
         </p>
 <div class="table">
-<a name="id855671"></a><p class="title"><b>Table 8. Functions exposed by any context passed to a lexer
+<a name="id869146"></a><p class="title"><b>Table 8. Functions exposed by any context passed to a lexer
         semantic action</b></p>
 <div class="table-contents"><table class="table" summary="Functions exposed by any context passed to a lexer
         semantic action">
@@ -240,7 +240,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="id856190"></a>
+<a name="id869664"></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>
@@ -252,7 +252,7 @@
           predefined Spirit placeholders:
         </p>
 <div class="table">
-<a name="id856212"></a><p class="title"><b>Table 9. Predefined Phoenix placeholders for lexer semantic
+<a name="id869687"></a><p class="title"><b>Table 9. Predefined Phoenix placeholders for lexer semantic
         actions</b></p>
 <div class="table-contents"><table class="table" summary="Predefined Phoenix placeholders for lexer semantic
         actions">
@@ -383,7 +383,7 @@
           table lists the available support functions and describes their functionality:
         </p>
 <div class="table">
-<a name="id856491"></a><p class="title"><b>Table 10. Support functions usable from Phoenix expressions
+<a name="id869965"></a><p class="title"><b>Table 10. Support functions usable from Phoenix expressions
         inside lexer semantic actions</b></p>
 <div class="table-contents"><table class="table" summary="Support functions usable from Phoenix expressions
         inside lexer semantic actions">

Copied: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,17 +27,17 @@
 <a name="spirit.lex.abstracts.lexer_states"></a><a class="link" href="lexer_states.html" title="Lexer States"> Lexer States</a>
 </h4></div></div></div>
 <a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions"></a><h6>
-<a name="id860556"></a>
+<a name="id873962"></a>
           <a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions">Controlling
           the Lexer State from Lexer Semantic Actions</a>
         </h6>
 <a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions"></a><h6>
-<a name="id860569"></a>
+<a name="id873976"></a>
           <a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions">Controlling
           the Lexer State from Parser Semantic Actions</a>
         </h6>
 <a name="spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser"></a><h6>
-<a name="id860582"></a>
+<a name="id873989"></a>
           <a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser">Using
           a Lexer State for the Skip Parser</a>
         </h6>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -176,7 +176,7 @@
 <p>
         </p>
 <a name="spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer"></a><h6>
-<a name="id859150"></a>
+<a name="id872556"></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>
@@ -239,7 +239,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer"></a><h6>
-<a name="id859513"></a>
+<a name="id872920"></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>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
         Input Data</a>
 </h4></div></div></div>
 <a name="spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function"></a><h6>
-<a name="id851281"></a>
+<a name="id865041"></a>
           <a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function">The
           tokenize function</a>
         </h6>
@@ -228,7 +228,7 @@
 </dl>
 </div>
 <a name="spirit.lex.abstracts.lexer_tokenizing.the_generate_static_function"></a><h6>
-<a name="id854756"></a>
+<a name="id868503"></a>
           <a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_generate_static_function">The
           generate_static function</a>
         </h6>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/lexer_introduction.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/lexer_introduction.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -56,7 +56,7 @@
         </li>
 </ul></div>
 <a name="spirit.lex.lexer_introduction.why_use_a_separate_lexer_"></a><h5>
-<a name="id838445"></a>
+<a name="id851741"></a>
         <a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.why_use_a_separate_lexer_">Why
         Use a Separate Lexer?</a>
       </h5>
@@ -155,7 +155,7 @@
         grammar recognizers.
       </p>
 <a name="spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id838653"></a>
+<a name="id851949"></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>
@@ -202,7 +202,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="id838757"></a>
+<a name="id852053"></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>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id863952"></a>
+<a name="id876268"></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="id864114"></a>
+<a name="id876430"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -143,7 +143,7 @@
 </tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.lexer.type_expressions"></a><h6>
-<a name="id864333"></a>
+<a name="id876650"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.type_expressions">Type
             Expressions</a>
           </h6>
@@ -182,7 +182,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.lexer.postcondition"></a><h6>
-<a name="id864470"></a>
+<a name="id876787"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.postcondition">Postcondition</a>
           </h6>
 <p>
@@ -206,7 +206,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="id865415"></a>
+<a name="id877721"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.models">Models</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id866269"></a>
+<a name="id878575"></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="id866305"></a>
+<a name="id878611"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.refinement_of">Refinement
             of</a>
           </h6>
@@ -64,7 +64,7 @@
 </dl>
 </div>
 <a name="spirit.lex.reference.lexer_concepts.narylexer.valid_expressions"></a><h6>
-<a name="id866387"></a>
+<a name="id878693"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -115,7 +115,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.narylexer.type_expressions"></a><h6>
-<a name="id866512"></a>
+<a name="id878818"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.type_expressions">Type
             Expressions</a>
           </h6>
@@ -168,7 +168,7 @@
 </tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.narylexer.invariants"></a><h6>
-<a name="id866683"></a>
+<a name="id878989"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.invariants">Invariants</a>
           </h6>
 <p>
@@ -180,7 +180,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="id866768"></a>
+<a name="id879074"></a>
             <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.models">Models</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id865452"></a>
+<a name="id877758"></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="id865475"></a>
+<a name="id877781"></a>
             <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.refinement_of">Refinement
             of</a>
           </h6>
@@ -49,7 +49,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.lex.reference.lexer_concepts.primitivelexer.type_expressions"></a><h6>
-<a name="id865508"></a>
+<a name="id877814"></a>
             <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.type_expressions">Type
             Expressions</a>
           </h6>
@@ -88,7 +88,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.primitivelexer.models"></a><h6>
-<a name="id865645"></a>
+<a name="id877951"></a>
             <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.models">Models</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id865747"></a>
+<a name="id878053"></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="id865772"></a>
+<a name="id878078"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.refinement_of">Refinement
             of</a>
           </h6>
@@ -63,7 +63,7 @@
 </dl>
 </div>
 <a name="spirit.lex.reference.lexer_concepts.unarylexer.valid_expressions"></a><h6>
-<a name="id865852"></a>
+<a name="id878158"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.valid_expressions">Valid
             Expressions</a>
           </h6>
@@ -113,7 +113,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.unarylexer.type_expressions"></a><h6>
-<a name="id865968"></a>
+<a name="id878274"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.type_expressions">Type
             Expressions</a>
           </h6>
@@ -166,7 +166,7 @@
 </tbody>
 </table></div>
 <a name="spirit.lex.reference.lexer_concepts.unarylexer.invariants"></a><h6>
-<a name="id866138"></a>
+<a name="id878444"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.invariants">Invariants</a>
           </h6>
 <p>
@@ -177,7 +177,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="id866224"></a>
+<a name="id878530"></a>
             <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.models">Models</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/primitives.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/lex/reference/primitives.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -36,7 +36,7 @@
           and string literals.
         </p>
 <a name="spirit.lex.reference.primitives.module_headers"></a><h6>
-<a name="id867340"></a>
+<a name="id879646"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id867426"></a>
+<a name="id879732"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.description">Description</a>
           </h6>
 <p>
@@ -42,11 +42,11 @@
             such as forcing lower or upper case and dealing with character ranges.
           </p>
 <a name="spirit.lex.reference.primitives.char_tokendef.header"></a><h6>
-<a name="id867470"></a>
+<a name="id879776"></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="id867486"></a>
+<a name="id879792"></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="id867563"></a>
+<a name="id881235"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -87,7 +87,7 @@
             Encoding Namespace</a>.
           </p>
 <a name="spirit.lex.reference.primitives.char_tokendef.model_of"></a><h6>
-<a name="id868913"></a>
+<a name="id881356"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.model_of">Model
             of</a>
           </h6>
@@ -119,7 +119,7 @@
 </dl>
 </div>
 <a name="spirit.lex.reference.primitives.char_tokendef.expression_semantics"></a><h6>
-<a name="id869017"></a>
+<a name="id881459"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -193,7 +193,7 @@
 </tbody>
 </table></div>
 <a name="spirit.lex.reference.primitives.char_tokendef.example"></a><h6>
-<a name="id869199"></a>
+<a name="id881641"></a>
             <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.example">Example</a>
           </h6>
 </div>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id839025"></a>
+<a name="id852321"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -78,7 +78,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.defining_tokens"></a><h6>
-<a name="id839275"></a>
+<a name="id852571"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.defining_tokens">Defining
           Tokens</a>
         </h6>
@@ -133,7 +133,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work"></a><h6>
-<a name="id839712"></a>
+<a name="id853140"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work">Doing
           the Useful Work</a>
         </h6>
@@ -198,7 +198,7 @@
           as well.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together"></a><h6>
-<a name="id840225"></a>
+<a name="id853652"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together">Pulling
           Everything Together</a>
         </h6>
@@ -251,7 +251,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="id841066"></a>
+<a name="id854494"></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>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id841916"></a>
+<a name="id856437"></a>
           <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -113,7 +113,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_"></a><h6>
-<a name="id842545"></a>
+<a name="id857065"></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>
@@ -172,7 +172,7 @@
           Semantic Actions</a>.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer"></a><h6>
-<a name="id843178"></a>
+<a name="id857698"></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>
@@ -208,7 +208,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="id843466"></a>
+<a name="id857986"></a>
           <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together">Pulling
           everything together</a>
         </h6>

Copied: branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html (from r56618, /trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -65,7 +65,7 @@
           code see here: word_count.cpp).
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.prerequisites"></a><h6>
-<a name="id846113"></a>
+<a name="id859540"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -113,7 +113,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.defining_tokens"></a><h6>
-<a name="id846479"></a>
+<a name="id859906"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.defining_tokens">Defining
           Tokens</a>
         </h6>
@@ -166,7 +166,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers"></a><h6>
-<a name="id846830"></a>
+<a name="id860258"></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>
@@ -320,7 +320,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="id847705"></a>
+<a name="id861133"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together">Pulling
           Everything Together</a>
         </h6>

Copied: branches/release/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html (from r56618, /trunk/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -41,7 +41,7 @@
         <a href="http://spirit.sourceforge.net" target="_top">Spirit</a>.
       </p>
 <a name="spirit.notes.porting_from_spirit_1_8_x.include_files"></a><h5>
-<a name="id879040"></a>
+<a name="id892324"></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="id879678"></a>
+<a name="id892962"></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>
@@ -409,7 +409,7 @@
         Encoding Namespace</a> for more information.
       </p>
 <a name="spirit.notes.porting_from_spirit_1_8_x.naming_conventions"></a><h5>
-<a name="id882419"></a>
+<a name="id896274"></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>
@@ -429,7 +429,7 @@
         parser primitives, directives and operators.
       </p>
 <a name="spirit.notes.porting_from_spirit_1_8_x.parser_attributes"></a><h5>
-<a name="id882491"></a>
+<a name="id896346"></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>
@@ -447,7 +447,7 @@
         underlying matched input sequence.
       </p>
 <a name="spirit.notes.porting_from_spirit_1_8_x.grammars_and_rules"></a><h5>
-<a name="id882559"></a>
+<a name="id897507"></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>

Copied: branches/release/libs/spirit/doc/html/spirit/preface.html (from r56618, /trunk/libs/spirit/doc/html/spirit/preface.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/preface.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/preface.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -41,11 +41,11 @@
       </p>
 </blockquote></div>
 <a name="spirit.preface.history"></a><h4>
-<a name="id546254"></a>
+<a name="id558521"></a>
       <a class="link" href="preface.html#spirit.preface.history">History</a>
     </h4>
 <a name="spirit.preface._emphasis_80s__emphasis_"></a><h4>
-<a name="id546268"></a>
+<a name="id558535"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_80s__emphasis_"><span class="emphasis"><em>80s</em></span></a>
     </h4>
 <p>
@@ -59,7 +59,7 @@
       This process worked very well.
     </p>
 <a name="spirit.preface._emphasis_90s__emphasis_"></a><h4>
-<a name="id546286"></a>
+<a name="id558553"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_90s__emphasis_"><span class="emphasis"><em>90s</em></span></a>
     </h4>
 <p>
@@ -96,7 +96,7 @@
       here: pre-Spirit.
     </p>
 <a name="spirit.preface._emphasis_2001_to_2006__emphasis_"></a><h4>
-<a name="id546328"></a>
+<a name="id558595"></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>
@@ -126,7 +126,7 @@
       for design and implementation quality, robustness, and reusability.
     </p>
 <a name="spirit.preface._emphasis_2007__emphasis_"></a><h4>
-<a name="id546362"></a>
+<a name="id558629"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_2007__emphasis_"><span class="emphasis"><em>2007</em></span></a>
     </h4>
 <p>
@@ -163,7 +163,7 @@
       gives you the right ingredients to easily create a sledgehammer.
     </p>
 <a name="spirit.preface.new_ideas__spirit_v2"></a><h4>
-<a name="id546437"></a>
+<a name="id558704"></a>
       <a class="link" href="preface.html#spirit.preface.new_ideas__spirit_v2">New Ideas: Spirit V2</a>
     </h4>
 <p>
@@ -194,7 +194,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="id546494"></a>
+<a name="id558761"></a>
       <a class="link" href="preface.html#spirit.preface.how_to_use_this_manual">How to use this manual</a>
     </h4>
 <p>
@@ -225,7 +225,7 @@
       icons precede some text to indicate:
     </p>
 <div class="table">
-<a name="id546547"></a><p class="title"><b>Table 1. Icons</b></p>
+<a name="id558814"></a><p class="title"><b>Table 1. Icons</b></p>
 <div class="table-contents"><table class="table" summary="Icons">
 <colgroup>
 <col>
@@ -346,7 +346,7 @@
       Tools</a>.
     </p>
 <a name="spirit.preface.support"></a><h4>
-<a name="id546788"></a>
+<a name="id559055"></a>
       <a class="link" href="preface.html#spirit.preface.support">Support</a>
     </h4>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id600649"></a>
+<a name="id613277"></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="id601131"></a>
+<a name="id613759"></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>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -41,7 +41,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="id616265"></a>
+<a name="id631009"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.auxiliary.attr"></a><a class="link" href="attr.html" title="Attribute (attr)"> Attribute (<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="id616356"></a>
+<a name="id631100"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.description">Description</a>
           </h6>
 <p>
@@ -36,7 +36,7 @@
             its specified parameter as an attribute.
           </p>
 <a name="spirit.qi.reference.auxiliary.attr.header"></a><h6>
-<a name="id616373"></a>
+<a name="id631117"></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;
@@ -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.attr.namespace"></a><h6>
-<a name="id616447"></a>
+<a name="id631191"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -64,7 +64,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.attr.model_of"></a><h6>
-<a name="id616525"></a>
+<a name="id631269"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -94,7 +94,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.auxiliary.attr.expression_semantics"></a><h6>
-<a name="id616619"></a>
+<a name="id631363"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -134,7 +134,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.attr.attributes"></a><h6>
-<a name="id617268"></a>
+<a name="id633445"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -168,7 +168,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.attr.complexity"></a><h6>
-<a name="id617356"></a>
+<a name="id633534"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -185,7 +185,7 @@
             done.
           </p>
 <a name="spirit.qi.reference.auxiliary.attr.example"></a><h6>
-<a name="id617384"></a>
+<a name="id633562"></a>
             <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -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="id618410"></a>
+<a name="id634588"></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="id618434"></a>
+<a name="id634612"></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="id618508"></a>
+<a name="id634686"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.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.eoi.model_of"></a><h6>
-<a name="id618586"></a>
+<a name="id634764"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -78,7 +78,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.auxiliary.eoi.expression_semantics"></a><h6>
-<a name="id618620"></a>
+<a name="id634798"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -117,7 +117,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eoi.attributes"></a><h6>
-<a name="id618704"></a>
+<a name="id634882"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -151,7 +151,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eoi.complexity"></a><h6>
-<a name="id618782"></a>
+<a name="id634960"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -164,7 +164,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.auxiliary.eoi.example"></a><h6>
-<a name="id618806"></a>
+<a name="id634984"></a>
             <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.auxiliary.eol"></a><a class="link" href="eol.html" title="End of Line (eol)"> End of Line (<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="id617888"></a>
+<a name="id634066"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.description">Description</a>
           </h6>
 <p>
@@ -35,7 +35,7 @@
             the end of line (CR/LF and combinations thereof).
           </p>
 <a name="spirit.qi.reference.auxiliary.eol.header"></a><h6>
-<a name="id617912"></a>
+<a name="id634090"></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;
@@ -45,7 +45,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="id617986"></a>
+<a name="id634164"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -63,7 +63,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eol.model_of"></a><h6>
-<a name="id618064"></a>
+<a name="id634242"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -76,7 +76,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.auxiliary.eol.expression_semantics"></a><h6>
-<a name="id618098"></a>
+<a name="id634276"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -115,7 +115,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eol.attributes"></a><h6>
-<a name="id618182"></a>
+<a name="id634360"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -149,7 +149,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eol.complexity"></a><h6>
-<a name="id618260"></a>
+<a name="id634438"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -162,7 +162,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.auxiliary.eol.example"></a><h6>
-<a name="id618284"></a>
+<a name="id634462"></a>
             <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.auxiliary.eps"></a><a class="link" href="eps.html" title="Epsilon (eps)"> Epsilon (<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="id618932"></a>
+<a name="id635110"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.description">Description</a>
           </h6>
 <p>
@@ -35,7 +35,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="id618956"></a>
+<a name="id635134"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.simple_form">Simple
             Form</a>
           </h6>
@@ -53,7 +53,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="id619057"></a>
+<a name="id635234"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.semantic_predicate">Semantic
             Predicate</a>
           </h6>
@@ -76,7 +76,7 @@
             touching rest.
           </p>
 <a name="spirit.qi.reference.auxiliary.eps.header"></a><h6>
-<a name="id619165"></a>
+<a name="id635342"></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;
@@ -86,7 +86,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="id619239"></a>
+<a name="id635417"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -104,7 +104,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eps.model_of"></a><h6>
-<a name="id619317"></a>
+<a name="id635495"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -127,7 +127,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.auxiliary.eps.expression_semantics"></a><h6>
-<a name="id621710"></a>
+<a name="id635703"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -182,7 +182,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eps.attributes"></a><h6>
-<a name="id621843"></a>
+<a name="id635836"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -216,7 +216,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.eps.complexity"></a><h6>
-<a name="id621921"></a>
+<a name="id635914"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -231,7 +231,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.auxiliary.eps.example"></a><h6>
-<a name="id621978"></a>
+<a name="id635972"></a>
             <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.auxiliary.lazy"></a><a class="link" href="lazy.html" title="Lazy (lazy)"> Lazy (<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="id622542"></a>
+<a name="id636536"></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="id622572"></a>
+<a name="id636566"></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="id622647"></a>
+<a name="id636640"></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="id622725"></a>
+<a name="id636718"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -88,7 +88,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.auxiliary.lazy.expression_semantics"></a><h6>
-<a name="id622798"></a>
+<a name="id636791"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -149,7 +149,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.lazy.attributes"></a><h6>
-<a name="id622989"></a>
+<a name="id636982"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -197,7 +197,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.auxiliary.lazy.complexity"></a><h6>
-<a name="id623111"></a>
+<a name="id637104"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.complexity">Complexity</a>
           </h6>
 <p>
@@ -205,7 +205,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="id623142"></a>
+<a name="id637136"></a>
             <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/basics.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/basics.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.basics"></a><a class="link" href="basics.html" title="Basics">Basics</a>
 </h4></div></div></div>
 <a name="spirit.qi.reference.basics.lazy_argument"></a><h6>
-<a name="id611660"></a>
+<a name="id626336"></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="id611797"></a>
+<a name="id626473"></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="id611980"></a>
+<a name="id626656"></a>
           <a class="link" href="basics.html#spirit.qi.reference.basics.examples">Examples</a>
         </h6>
 <p>
@@ -264,11 +264,11 @@
 <p>
         </p>
 <a name="spirit.qi.reference.basics.string"></a><h6>
-<a name="id615647"></a>
+<a name="id630391"></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="id615660"></a>
+<a name="id630404"></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;
@@ -369,7 +369,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.basics.models"></a><h6>
-<a name="id616133"></a>
+<a name="id630877"></a>
           <a class="link" href="basics.html#spirit.qi.reference.basics.models">Models</a>
         </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/binary.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/binary.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/binary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/binary.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -41,7 +41,7 @@
           input.
         </p>
 <a name="spirit.qi.reference.binary.module_header"></a><h6>
-<a name="id623406"></a>
+<a name="id637400"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           Endian</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.binary.binary_big.description"></a><h6>
-<a name="id628877"></a>
+<a name="id642870"></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="id628894"></a>
+<a name="id642887"></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="id628968"></a>
+<a name="id642961"></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="id629162"></a>
+<a name="id643156"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.model_of">Model
             of</a>
           </h6>
@@ -127,7 +127,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.binary.binary_big.expression_semantics"></a><h6>
-<a name="id629274"></a>
+<a name="id643267"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -228,7 +228,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_big.attributes"></a><h6>
-<a name="id629513"></a>
+<a name="id643506"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -324,7 +324,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_big.complexity"></a><h6>
-<a name="id629801"></a>
+<a name="id643794"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -337,7 +337,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.binary.binary_big.example"></a><h6>
-<a name="id629825"></a>
+<a name="id643818"></a>
             <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           Little Endian</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.binary.binary_little.description"></a><h6>
-<a name="id627418"></a>
+<a name="id640319"></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="id627435"></a>
+<a name="id640336"></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="id627510"></a>
+<a name="id640410"></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="id627704"></a>
+<a name="id640605"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.model_of">Model
             of</a>
           </h6>
@@ -128,7 +128,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.binary.binary_little.expression_semantics"></a><h6>
-<a name="id627816"></a>
+<a name="id640716"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -229,7 +229,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_little.attributes"></a><h6>
-<a name="id628055"></a>
+<a name="id642048"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -325,7 +325,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_little.complexity"></a><h6>
-<a name="id628343"></a>
+<a name="id642336"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -338,7 +338,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.binary.binary_little.example"></a><h6>
-<a name="id628367"></a>
+<a name="id642360"></a>
             <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           Native Endian</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.binary.binary_native.description"></a><h6>
-<a name="id623490"></a>
+<a name="id637484"></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="id623512"></a>
+<a name="id637505"></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="id623586"></a>
+<a name="id637580"></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="id623814"></a>
+<a name="id637808"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.model_of">Model
             of</a>
           </h6>
@@ -140,7 +140,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.binary.binary_native.expression_semantics"></a><h6>
-<a name="id625731"></a>
+<a name="id638632"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -265,7 +265,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_native.attributes"></a><h6>
-<a name="id626029"></a>
+<a name="id638930"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -385,7 +385,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.binary.binary_native.complexity"></a><h6>
-<a name="id626397"></a>
+<a name="id639298"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -398,7 +398,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.binary.binary_native.example"></a><h6>
-<a name="id626421"></a>
+<a name="id639322"></a>
             <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/char.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/char.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/char.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/char.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -43,7 +43,7 @@
           etc.).
         </p>
 <a name="spirit.qi.reference.char.module_header"></a><h6>
-<a name="id631682"></a>
+<a name="id644514"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/char/char.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/char/char.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.qi.reference.char.char"></a><a class="link" href="char.html" title="Char (char_, lit)"> Char (<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="id631780"></a>
+<a name="id644613"></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="id631827"></a>
+<a name="id644660"></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="id631868"></a>
+<a name="id644700"></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="id631956"></a>
+<a name="id644789"></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="id632136"></a>
+<a name="id644969"></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="id632249"></a>
+<a name="id645082"></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="id632412"></a>
+<a name="id645245"></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="id632480"></a>
+<a name="id645312"></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="id632598"></a>
+<a name="id645431"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -255,7 +255,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.char.char.expression_semantics"></a><h6>
-<a name="id632805"></a>
+<a name="id645638"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -375,7 +375,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.char.char.attributes"></a><h6>
-<a name="id633212"></a>
+<a name="id646044"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -492,7 +492,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.char.char.complexity"></a><h6>
-<a name="id634165"></a>
+<a name="id648776"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -508,7 +508,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.char.char.example"></a><h6>
-<a name="id634206"></a>
+<a name="id648817"></a>
             <a class="link" href="char.html#spirit.qi.reference.char.char.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -29,7 +29,7 @@
           etc.)</a>
 </h5></div></div></div>
 <a name="spirit.qi.reference.char.char_class.description"></a><h6>
-<a name="id634828"></a>
+<a name="id649440"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             such as inhibiting case sensitivity.
           </p>
 <a name="spirit.qi.reference.char.char_class.header"></a><h6>
-<a name="id634880"></a>
+<a name="id649492"></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;
@@ -51,7 +51,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="id634947"></a>
+<a name="id649559"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -130,7 +130,7 @@
             Encoding Namespace</a>.
           </p>
 <a name="spirit.qi.reference.char.char_class.model_of"></a><h6>
-<a name="id635306"></a>
+<a name="id649918"></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">
@@ -153,7 +153,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.char.char_class.expression_semantics"></a><h6>
-<a name="id635372"></a>
+<a name="id649984"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -326,7 +326,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.char.char_class.attributes"></a><h6>
-<a name="id635811"></a>
+<a name="id650423"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.attributes">Attributes</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -340,7 +340,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.char.char_class.complexity"></a><h6>
-<a name="id635847"></a>
+<a name="id650459"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -353,7 +353,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.char.char_class.example"></a><h6>
-<a name="id635871"></a>
+<a name="id650483"></a>
             <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -47,7 +47,7 @@
           <code class="computeroutput"><span class="identifier">raw</span></code>, and <code class="computeroutput"><span class="identifier">skip</span></code> directives.
         </p>
 <a name="spirit.qi.reference.directive.module_header"></a><h6>
-<a name="id636200"></a>
+<a name="id650812"></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;

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           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="id637388"></a>
+<a name="id650907"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.description">Description</a>
           </h6>
 <p>
@@ -51,7 +51,7 @@
             will be parsed as <code class="computeroutput"><span class="string">"12345"</span></code>.
           </p>
 <a name="spirit.qi.reference.directive.lexeme.header"></a><h6>
-<a name="id637534"></a>
+<a name="id651053"></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;
@@ -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.lexeme.namespace"></a><h6>
-<a name="id637608"></a>
+<a name="id651128"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,7 +79,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.lexeme.model_of"></a><h6>
-<a name="id637686"></a>
+<a name="id651206"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -101,7 +101,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.lexeme.expression_semantics"></a><h6>
-<a name="id637757"></a>
+<a name="id651276"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -140,7 +140,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.lexeme.attributes"></a><h6>
-<a name="id637862"></a>
+<a name="id651381"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.attributes">Attributes</a>
           </h6>
 <p>
@@ -182,7 +182,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.lexeme.complexity"></a><h6>
-<a name="id638033"></a>
+<a name="id651552"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -196,7 +196,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.directive.lexeme.example"></a><h6>
-<a name="id638064"></a>
+<a name="id651584"></a>
             <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html)
==============================================================================
--- /trunk/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 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           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="id638328"></a>
+<a name="id651848"></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="id638356"></a>
+<a name="id651875"></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="id638430"></a>
+<a name="id651950"></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="id638512"></a>
+<a name="id652031"></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="id638597"></a>
+<a name="id652116"></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="id638700"></a>
+<a name="id652220"></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="id638894"></a>
+<a name="id652413"></a>
             <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -189,7 +189,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.directive.no_case.example"></a><h6>
-<a name="id638925"></a>
+<a name="id652444"></a>
             <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           (<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="id640126"></a>
+<a name="id653628"></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="id640160"></a>
+<a name="id653663"></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="id640235"></a>
+<a name="id653737"></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="id640313"></a>
+<a name="id653815"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -86,7 +86,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.omit.expression_semantics"></a><h6>
-<a name="id640381"></a>
+<a name="id653884"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -125,7 +125,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.omit.attributes"></a><h6>
-<a name="id640483"></a>
+<a name="id653986"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -159,7 +159,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.omit.complexity"></a><h6>
-<a name="id640572"></a>
+<a name="id654074"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -173,7 +173,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.directive.omit.example"></a><h6>
-<a name="id640603"></a>
+<a name="id654106"></a>
             <a class="link" href="omit.html#spirit.qi.reference.directive.omit.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           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="id640900"></a>
+<a name="id654402"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.description">Description</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
             Spirit transduction (un-attributed) behavior for a subject parser.
           </p>
 <a name="spirit.qi.reference.directive.raw.header"></a><h6>
-<a name="id640961"></a>
+<a name="id654463"></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="id641035"></a>
+<a name="id654538"></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="id641113"></a>
+<a name="id654616"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -93,7 +93,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.raw.expression_semantics"></a><h6>
-<a name="id641209"></a>
+<a name="id654712"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -134,7 +134,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.raw.attributes"></a><h6>
-<a name="id641335"></a>
+<a name="id654838"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.attributes">Attributes</a>
           </h6>
 <p>
@@ -185,7 +185,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.qi.reference.directive.raw.complexity"></a><h6>
-<a name="id641550"></a>
+<a name="id655052"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -199,7 +199,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.directive.raw.example"></a><h6>
-<a name="id641581"></a>
+<a name="id655084"></a>
             <a class="link" href="raw.html#spirit.qi.reference.directive.raw.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           (<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="id641891"></a>
+<a name="id655393"></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="id641942"></a>
+<a name="id655445"></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="id642017"></a>
+<a name="id655519"></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="id642132"></a>
+<a name="id655634"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -116,7 +116,7 @@
 </dl>
 </div>
 <a name="spirit.qi.reference.directive.repeat.expression_semantics"></a><h6>
-<a name="id642262"></a>
+<a name="id655764"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -202,7 +202,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.repeat.attributes"></a><h6>
-<a name="id644074"></a>
+<a name="id657320"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.attributes">Attributes</a>
           </h6>
 <p>
@@ -296,7 +296,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.reference.directive.repeat.complexity"></a><h6>
-<a name="id644746"></a>
+<a name="id657992"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -311,7 +311,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.qi.reference.directive.repeat.example"></a><h6>
-<a name="id644777"></a>
+<a name="id658023"></a>
             <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.example">Example</a>
           </h6>
 <p>

Copied: branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html (from r56618, /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html)
==============================================================================
--- /trunk/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html 2009-10-06 19:57:14 EDT (Tue, 06 Oct 2009)
@@ -28,7 +28,7 @@
           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="id645688"></a>
+<a name="id658934"></a>
             <a class="link" href="skip.html#spirit.qi.reference.directive.skip.description">Description</a>
           </h6>
 <p>
@@ -60,7 +60,7 @@
             </li>
 </ul></div>
 <a name="spirit.qi.reference.directive.skip.header"></a><h6>
-<a name="id645821"></a>
+<a name="id659067"></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;
@@ -70,7 +70,7 @@
             Also, see <a class="link" hr