|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r50611 - in branches/release: boost boost/spirit boost/spirit/home boost/spirit/home/classic boost/spirit/home/classic/core boost/spirit/home/classic/symbols/impl boost/spirit/home/classic/utility/impl/chset 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/directive/detail boost/spirit/home/karma/nonterminal boost/spirit/home/karma/nonterminal/detail boost/spirit/home/karma/numeric boost/spirit/home/karma/operator boost/spirit/home/karma/operator/detail boost/spirit/home/karma/stream boost/spirit/home/karma/stream/detail boost/spirit/home/karma/string boost/spirit/home/lex boost/spirit/home/lex/lexer boost/spirit/home/lex/lexer/detail boost/spirit/home/lex/lexer/lexertl boost/spirit/home/lex/qi boost/spirit/home/lex/qi/state boost/spirit/home/lex/qi/utility boost/spirit/home/phoenix/bind boost/spirit/home/phoenix/operator boost/spirit/home/qi boost/spirit/home/qi/auxiliary boost/spirit/home/qi/binary boost/spirit/home/qi/debug boost/spirit/home/qi/debug/detail boost/spirit/home/qi/detail boost/spirit/home/qi/nonterminal boost/spirit/home/qi/numeric/detail boost/spirit/home/qi/operator boost/spirit/home/qi/stream boost/spirit/home/qi/stream/detail boost/spirit/home/support boost/spirit/home/support/algorithm boost/spirit/home/support/auxiliary boost/spirit/home/support/char_class boost/spirit/home/support/detail boost/spirit/home/support/detail/lexer boost/spirit/home/support/detail/lexer/containers boost/spirit/home/support/detail/lexer/conversion boost/spirit/home/support/detail/lexer/parser boost/spirit/home/support/detail/lexer/parser/tokeniser boost/spirit/home/support/detail/lexer/parser/tree boost/spirit/home/support/detail/lexer/partition boost/spirit/home/support/meta_grammar boost/spirit/home/support/nonterminal boost/spirit/include libs/spirit libs/spirit/classic/test libs/spirit/doc libs/spirit/doc/html libs/spirit/doc/html/spirit libs/spirit/doc/html/spirit/lex libs/spirit/doc/html/spirit/lex/abstracts libs/spirit/doc/html/spirit/lex/reference libs/spirit/doc/html/spirit/lex/tutorials libs/spirit/doc/html/spirit/notes libs/spirit/doc/html/spirit/qi_and_karma libs/spirit/doc/html/spirit/qi_and_karma/abstracts libs/spirit/doc/lex libs/spirit/doc/notes libs/spirit/doc/qi_and_karma libs/spirit/doc/reference/lex libs/spirit/doc/reference/qi_and_karma libs/spirit/example/karma libs/spirit/example/lex libs/spirit/example/lex/static_lexer libs/spirit/example/qi libs/spirit/phoenix libs/spirit/phoenix/test/bind libs/spirit/phoenix/test/operator libs/spirit/test libs/spirit/test/karma libs/spirit/test/lex libs/spirit/test/qi libs/spirit/test/support
From: hartmut.kaiser_at_[hidden]
Date: 2009-01-15 12:35:27
Author: hkaiser
Date: 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
New Revision: 50611
URL: http://svn.boost.org/trac/boost/changeset/50611
Log:
Spirit: Merging from trunk
Added:
branches/release/boost/spirit/home/karma/auxiliary/confix.hpp
- copied unchanged from r50609, /trunk/boost/spirit/home/karma/auxiliary/confix.hpp
branches/release/boost/spirit/home/karma/nonterminal/grammar_fwd.hpp
- copied unchanged from r50609, /trunk/boost/spirit/home/karma/nonterminal/grammar_fwd.hpp
branches/release/boost/spirit/home/qi/auxiliary/confix.hpp
- copied unchanged from r50609, /trunk/boost/spirit/home/qi/auxiliary/confix.hpp
branches/release/boost/spirit/home/qi/nonterminal/grammar_fwd.hpp
- copied unchanged from r50609, /trunk/boost/spirit/home/qi/nonterminal/grammar_fwd.hpp
branches/release/boost/spirit/home/support.hpp
- copied unchanged from r50609, /trunk/boost/spirit/home/support.hpp
branches/release/boost/spirit/home/support/auxiliary/confix.hpp
- copied unchanged from r50609, /trunk/boost/spirit/home/support/auxiliary/confix.hpp
branches/release/boost/spirit/include/classic_spirit.hpp
- copied unchanged from r50609, /trunk/boost/spirit/include/classic_spirit.hpp
branches/release/libs/spirit/test/karma/confix.cpp
- copied unchanged from r50610, /trunk/libs/spirit/test/karma/confix.cpp
branches/release/libs/spirit/test/karma/pattern2.cpp
- copied unchanged from r50610, /trunk/libs/spirit/test/karma/pattern2.cpp
branches/release/libs/spirit/test/qi/confix.cpp
- copied unchanged from r50610, /trunk/libs/spirit/test/qi/confix.cpp
Removed:
branches/release/libs/spirit/test/repeat_ast_tests.cpp
Text files modified:
branches/release/boost/spirit.hpp | 2
branches/release/boost/spirit/home/classic/core/parser.hpp | 2
branches/release/boost/spirit/home/classic/symbols/impl/tst.ipp | 4
branches/release/boost/spirit/home/classic/utility/impl/chset/basic_chset.hpp | 1
branches/release/boost/spirit/home/classic/version.hpp | 6
branches/release/boost/spirit/home/karma.hpp | 2
branches/release/boost/spirit/home/karma/action.hpp | 2
branches/release/boost/spirit/home/karma/action/action.hpp | 2
branches/release/boost/spirit/home/karma/action/meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/auxiliary.hpp | 2
branches/release/boost/spirit/home/karma/auxiliary/eps.hpp | 2
branches/release/boost/spirit/home/karma/auxiliary/functor.hpp | 2
branches/release/boost/spirit/home/karma/auxiliary/functor_director.hpp | 2
branches/release/boost/spirit/home/karma/auxiliary/lazy.hpp | 2
branches/release/boost/spirit/home/karma/auxiliary/meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/auxiliary/none.hpp | 2
branches/release/boost/spirit/home/karma/binary.hpp | 2
branches/release/boost/spirit/home/karma/binary/binary.hpp | 2
branches/release/boost/spirit/home/karma/binary/meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/char.hpp | 2
branches/release/boost/spirit/home/karma/char/char.hpp | 2
branches/release/boost/spirit/home/karma/char/meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/char/space.hpp | 2
branches/release/boost/spirit/home/karma/delimit.hpp | 2
branches/release/boost/spirit/home/karma/detail/generate_to.hpp | 2
branches/release/boost/spirit/home/karma/detail/ostream_iterator.hpp | 2
branches/release/boost/spirit/home/karma/detail/output_iterator.hpp | 8
branches/release/boost/spirit/home/karma/detail/string_generate.hpp | 2
branches/release/boost/spirit/home/karma/directive.hpp | 2
branches/release/boost/spirit/home/karma/directive/alignment_meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/directive/case_meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/directive/center_alignment.hpp | 2
branches/release/boost/spirit/home/karma/directive/delimit.hpp | 2
branches/release/boost/spirit/home/karma/directive/delimiter_meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/directive/detail/center_alignment_generate.hpp | 2
branches/release/boost/spirit/home/karma/directive/detail/left_alignment_generate.hpp | 2
branches/release/boost/spirit/home/karma/directive/detail/right_alignment_generate.hpp | 2
branches/release/boost/spirit/home/karma/directive/left_alignment.hpp | 2
branches/release/boost/spirit/home/karma/directive/right_alignment.hpp | 2
branches/release/boost/spirit/home/karma/directive/verbatim.hpp | 2
branches/release/boost/spirit/home/karma/domain.hpp | 2
branches/release/boost/spirit/home/karma/generate.hpp | 2
branches/release/boost/spirit/home/karma/meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/nonterminal.hpp | 2
branches/release/boost/spirit/home/karma/nonterminal/detail/rule.hpp | 2
branches/release/boost/spirit/home/karma/nonterminal/grammar.hpp | 2
branches/release/boost/spirit/home/karma/nonterminal/meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/nonterminal/nonterminal.hpp | 2
branches/release/boost/spirit/home/karma/nonterminal/nonterminal_director.hpp | 2
branches/release/boost/spirit/home/karma/nonterminal/rule.hpp | 2
branches/release/boost/spirit/home/karma/numeric.hpp | 2
branches/release/boost/spirit/home/karma/numeric/int.hpp | 2
branches/release/boost/spirit/home/karma/numeric/meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/numeric/numeric_fwd.hpp | 2
branches/release/boost/spirit/home/karma/numeric/real.hpp | 2
branches/release/boost/spirit/home/karma/numeric/real_policies.hpp | 7
branches/release/boost/spirit/home/karma/numeric/uint.hpp | 2
branches/release/boost/spirit/home/karma/operator.hpp | 2
branches/release/boost/spirit/home/karma/operator/alternative.hpp | 2
branches/release/boost/spirit/home/karma/operator/detail/alternative.hpp | 2
branches/release/boost/spirit/home/karma/operator/detail/sequence.hpp | 2
branches/release/boost/spirit/home/karma/operator/kleene.hpp | 2
branches/release/boost/spirit/home/karma/operator/list.hpp | 2
branches/release/boost/spirit/home/karma/operator/meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/operator/optional.hpp | 76 +++----
branches/release/boost/spirit/home/karma/operator/plus.hpp | 2
branches/release/boost/spirit/home/karma/operator/sequence.hpp | 2
branches/release/boost/spirit/home/karma/stream.hpp | 2
branches/release/boost/spirit/home/karma/stream/detail/format_manip.hpp | 2
branches/release/boost/spirit/home/karma/stream/detail/iterator_ostream.hpp | 2
branches/release/boost/spirit/home/karma/stream/format_manip.hpp | 2
branches/release/boost/spirit/home/karma/stream/meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/stream/stream.hpp | 2
branches/release/boost/spirit/home/karma/string.hpp | 2
branches/release/boost/spirit/home/karma/string/lit.hpp | 2
branches/release/boost/spirit/home/karma/string/meta_grammar.hpp | 2
branches/release/boost/spirit/home/karma/what.hpp | 2
branches/release/boost/spirit/home/lex.hpp | 2
branches/release/boost/spirit/home/lex/domain.hpp | 2
branches/release/boost/spirit/home/lex/lexer.hpp | 2
branches/release/boost/spirit/home/lex/lexer/action.hpp | 2
branches/release/boost/spirit/home/lex/lexer/char_token_def.hpp | 2
branches/release/boost/spirit/home/lex/lexer/detail/sequence.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexer.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexer_actions.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexer_fwd.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexertl/iterator_tokenizer.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_functor.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_generate_static.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_iterator.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_lexer.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_static_functor.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_static_lexer.hpp | 2
branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_token.hpp | 2
branches/release/boost/spirit/home/lex/lexer/meta_grammar.hpp | 2
branches/release/boost/spirit/home/lex/lexer/sequence.hpp | 2
branches/release/boost/spirit/home/lex/lexer/string_token_def.hpp | 2
branches/release/boost/spirit/home/lex/lexer/terminal_director.hpp | 2
branches/release/boost/spirit/home/lex/lexer/terminal_holder.hpp | 2
branches/release/boost/spirit/home/lex/lexer/token_def.hpp | 2
branches/release/boost/spirit/home/lex/lexer/token_set.hpp | 2
branches/release/boost/spirit/home/lex/lexer_lexertl.hpp | 2
branches/release/boost/spirit/home/lex/lexer_static_lexertl.hpp | 2
branches/release/boost/spirit/home/lex/meta_grammar.hpp | 2
branches/release/boost/spirit/home/lex/qi/meta_grammar.hpp | 2
branches/release/boost/spirit/home/lex/qi/state/in_state.hpp | 2
branches/release/boost/spirit/home/lex/qi/state/state_switcher.hpp | 2
branches/release/boost/spirit/home/lex/qi/utility/plain_token.hpp | 2
branches/release/boost/spirit/home/lex/set_state.hpp | 2
branches/release/boost/spirit/home/lex/tokenize_and_parse.hpp | 2
branches/release/boost/spirit/home/phoenix.hpp | 13 +
branches/release/boost/spirit/home/phoenix/bind/bind_member_variable.hpp | 33 +++
branches/release/boost/spirit/home/phoenix/operator/io.hpp | 15 +
branches/release/boost/spirit/home/qi/auxiliary.hpp | 2
branches/release/boost/spirit/home/qi/auxiliary/functor.hpp | 2
branches/release/boost/spirit/home/qi/auxiliary/functor_director.hpp | 2
branches/release/boost/spirit/home/qi/auxiliary/meta_grammar.hpp | 2
branches/release/boost/spirit/home/qi/binary.hpp | 2
branches/release/boost/spirit/home/qi/binary/binary.hpp | 2
branches/release/boost/spirit/home/qi/binary/meta_grammar.hpp | 2
branches/release/boost/spirit/home/qi/debug.hpp | 2
branches/release/boost/spirit/home/qi/debug/detail/debug_handler.hpp | 2
branches/release/boost/spirit/home/qi/debug/detail/print_node_info.hpp | 2
branches/release/boost/spirit/home/qi/debug/minimal_macros.hpp | 2
branches/release/boost/spirit/home/qi/debug/simple_debug.hpp | 2
branches/release/boost/spirit/home/qi/debug/simple_debug_macros.hpp | 2
branches/release/boost/spirit/home/qi/detail/alternative_function.hpp | 2
branches/release/boost/spirit/home/qi/detail/assign_to.hpp | 2
branches/release/boost/spirit/home/qi/detail/construct.hpp | 2
branches/release/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp | 4
branches/release/boost/spirit/home/qi/numeric/detail/real_impl.hpp | 2
branches/release/boost/spirit/home/qi/operator/alternative.hpp | 2
branches/release/boost/spirit/home/qi/stream.hpp | 2
branches/release/boost/spirit/home/qi/stream/detail/iterator_istream.hpp | 2
branches/release/boost/spirit/home/qi/stream/detail/match_manip.hpp | 2
branches/release/boost/spirit/home/qi/stream/match_manip.hpp | 2
branches/release/boost/spirit/home/qi/stream/meta_grammar.hpp | 2
branches/release/boost/spirit/home/qi/stream/stream.hpp | 2
branches/release/boost/spirit/home/support/algorithm/any_if.hpp | 2
branches/release/boost/spirit/home/support/auxiliary/functor_holder.hpp | 2
branches/release/boost/spirit/home/support/auxiliary/meta_function_holder.hpp | 2
branches/release/boost/spirit/home/support/char_class.hpp | 34 ++-
branches/release/boost/spirit/home/support/char_class/ascii.hpp | 2
branches/release/boost/spirit/home/support/char_class/iso8859_1.hpp | 4
branches/release/boost/spirit/home/support/char_class/standard.hpp | 2
branches/release/boost/spirit/home/support/char_class/standard_wide.hpp | 2
branches/release/boost/spirit/home/support/detail/container.hpp | 2
branches/release/boost/spirit/home/support/detail/hold_any.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/char_traits.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/consts.hpp | 5
branches/release/boost/spirit/home/support/detail/lexer/containers/ptr_list.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/containers/ptr_vector.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/conversion/char_state_machine.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/debug.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/generator.hpp | 58 ++---
branches/release/boost/spirit/home/support/detail/lexer/input.hpp | 16
branches/release/boost/spirit/home/support/detail/lexer/parser/parser.hpp | 13
branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/num_token.hpp | 8
branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser.hpp | 130 ++++++++++++-
branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser_helper.hpp | 23 +-
branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser_state.hpp | 37 ++-
branches/release/boost/spirit/home/support/detail/lexer/parser/tree/end_node.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/parser/tree/iteration_node.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/parser/tree/leaf_node.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/parser/tree/node.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/parser/tree/selection_node.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/parser/tree/sequence_node.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/partition/charset.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/partition/equivset.hpp | 16 -
branches/release/boost/spirit/home/support/detail/lexer/rules.hpp | 37 +--
branches/release/boost/spirit/home/support/detail/lexer/runtime_error.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/serialise.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/size_t.hpp | 2
branches/release/boost/spirit/home/support/detail/lexer/string_token.hpp | 2
branches/release/boost/spirit/home/support/detail/to_narrow.hpp | 2
branches/release/boost/spirit/home/support/detail/values.hpp | 2
branches/release/boost/spirit/home/support/meta_grammar/basic_transforms.hpp | 2
branches/release/boost/spirit/home/support/nonterminal/locals.hpp | 2
branches/release/boost/spirit/home/support/placeholders.hpp | 2
branches/release/boost/spirit/version.hpp | 25 -
branches/release/libs/spirit/classic/test/position_iterator_tests.cpp | 20 +-
branches/release/libs/spirit/doc/acknowledgments.qbk | 2
branches/release/libs/spirit/doc/faq.qbk | 2
branches/release/libs/spirit/doc/html/index.html | 25 +-
branches/release/libs/spirit/doc/html/spirit/acknowledgments.html | 2
branches/release/libs/spirit/doc/html/spirit/introduction.html | 133 ++++++-------
branches/release/libs/spirit/doc/html/spirit/lex.html | 58 +++---
branches/release/libs/spirit/doc/html/spirit/lex/abstracts.html | 20 -
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 | 22 -
branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html | 4
branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html | 8
branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html | 28 +-
branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html | 27 +-
branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html | 25 +-
branches/release/libs/spirit/doc/html/spirit/notes/style_guide.html | 12
branches/release/libs/spirit/doc/html/spirit/qi_and_karma.html | 373 ++++++++++++++-------------------------
branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/mini_xml___error_handling.html | 30 +--
branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing.html | 10
branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing_and_generating.html | 10
branches/release/libs/spirit/doc/html/spirit/qi_and_karma/quick_reference.html | 2
branches/release/libs/spirit/doc/html/spirit/qi_and_karma/reference.html | 10
branches/release/libs/spirit/doc/html/spirit/what_s_new.html | 8
branches/release/libs/spirit/doc/introduction.qbk | 70 +++---
branches/release/libs/spirit/doc/lex.qbk | 2
branches/release/libs/spirit/doc/lex/introduction.qbk | 32 +-
branches/release/libs/spirit/doc/lex/lexer_attributes.qbk | 2
branches/release/libs/spirit/doc/lex/lexer_primitives.qbk | 2
branches/release/libs/spirit/doc/lex/lexer_quickstart1.qbk | 2
branches/release/libs/spirit/doc/lex/lexer_quickstart2.qbk | 2
branches/release/libs/spirit/doc/lex/lexer_quickstart3.qbk | 2
branches/release/libs/spirit/doc/lex/lexer_semantic_actions.qbk | 2
branches/release/libs/spirit/doc/lex/lexer_states.qbk | 2
branches/release/libs/spirit/doc/lex/lexer_static_model.qbk | 2
branches/release/libs/spirit/doc/lex/lexer_tutorials.qbk | 2
branches/release/libs/spirit/doc/lex/parsing_using_a_lexer.qbk | 2
branches/release/libs/spirit/doc/lex/token_definition.qbk | 2
branches/release/libs/spirit/doc/lex/tokenizing.qbk | 2
branches/release/libs/spirit/doc/lex/tokens_values.qbk | 2
branches/release/libs/spirit/doc/notes.qbk | 2
branches/release/libs/spirit/doc/notes/style_guide.qbk | 2
branches/release/libs/spirit/doc/preface.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/attributes.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/debugging.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/directives.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/error_handling.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/generating.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/grammars.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/operators.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/parse_trees_and_asts.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/parsing.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/peg.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/primitives.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/quick_reference.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/roman.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/rules.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/semantic_actions.qbk | 2
branches/release/libs/spirit/doc/qi_and_karma/warming_up.qbk | 2
branches/release/libs/spirit/doc/rationale.qbk | 2
branches/release/libs/spirit/doc/reference/lex/lexer.qbk | 2
branches/release/libs/spirit/doc/reference/lex/lexer_class.qbk | 2
branches/release/libs/spirit/doc/reference/lex/token.qbk | 2
branches/release/libs/spirit/doc/reference/lex/token_class.qbk | 2
branches/release/libs/spirit/doc/reference/lex/tokendef.qbk | 2
branches/release/libs/spirit/doc/reference/lex/tokendef_class.qbk | 2
branches/release/libs/spirit/doc/reference/lex/tokenset.qbk | 2
branches/release/libs/spirit/doc/reference/lex/tokenset_class.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/action.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/auxiliary.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/binary.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/char.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/debug.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/directive.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/generator.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/nonterminal.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/numeric.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/operator.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/parser.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/stream.qbk | 2
branches/release/libs/spirit/doc/reference/qi_and_karma/string.qbk | 2
branches/release/libs/spirit/doc/references.qbk | 2
branches/release/libs/spirit/doc/spirit2.qbk | 2
branches/release/libs/spirit/doc/what_s_new.qbk | 2
branches/release/libs/spirit/example/karma/Jamfile | 2
branches/release/libs/spirit/example/karma/basic_facilities.cpp | 43 ++++
branches/release/libs/spirit/example/karma/functor_facilities.cpp | 18 -
branches/release/libs/spirit/example/karma/quick_start1.cpp | 3
branches/release/libs/spirit/example/lex/example.hpp | 2
branches/release/libs/spirit/example/lex/example1.cpp | 2
branches/release/libs/spirit/example/lex/example2.cpp | 2
branches/release/libs/spirit/example/lex/example3.cpp | 2
branches/release/libs/spirit/example/lex/example4.cpp | 2
branches/release/libs/spirit/example/lex/example5.cpp | 2
branches/release/libs/spirit/example/lex/example6.cpp | 2
branches/release/libs/spirit/example/lex/print_numbers.cpp | 2
branches/release/libs/spirit/example/lex/static_lexer/word_count_generate.cpp | 2
branches/release/libs/spirit/example/lex/static_lexer/word_count_static.cpp | 2
branches/release/libs/spirit/example/lex/static_lexer/word_count_tokens.hpp | 2
branches/release/libs/spirit/example/lex/strip_comments.cpp | 2
branches/release/libs/spirit/example/lex/strip_comments_lexer.cpp | 2
branches/release/libs/spirit/example/lex/word_count.cpp | 2
branches/release/libs/spirit/example/lex/word_count_functor.cpp | 2
branches/release/libs/spirit/example/lex/word_count_functor.flex | 2
branches/release/libs/spirit/example/lex/word_count_functor_flex.cpp | 2
branches/release/libs/spirit/example/lex/word_count_lexer.cpp | 2
branches/release/libs/spirit/example/qi/calc3_lexer.cpp | 2
branches/release/libs/spirit/index.html | 8
branches/release/libs/spirit/phoenix/index.html | 11
branches/release/libs/spirit/phoenix/test/bind/bind_member_variable_tests.cpp | 76 +++++++
branches/release/libs/spirit/phoenix/test/operator/io_tests.cpp | 3
branches/release/libs/spirit/test/karma/actions.cpp | 2
branches/release/libs/spirit/test/karma/alternative.cpp | 2
branches/release/libs/spirit/test/karma/binary.cpp | 2
branches/release/libs/spirit/test/karma/case_handling.cpp | 2
branches/release/libs/spirit/test/karma/center_alignment.cpp | 2
branches/release/libs/spirit/test/karma/char.cpp | 2
branches/release/libs/spirit/test/karma/delimiter.cpp | 2
branches/release/libs/spirit/test/karma/eol.cpp | 2
branches/release/libs/spirit/test/karma/eps.cpp | 2
branches/release/libs/spirit/test/karma/format_manip.cpp | 2
branches/release/libs/spirit/test/karma/functor.cpp | 2
branches/release/libs/spirit/test/karma/grammar.cpp | 2
branches/release/libs/spirit/test/karma/grammar_fail.cpp | 2
branches/release/libs/spirit/test/karma/int_numerics.cpp | 2
branches/release/libs/spirit/test/karma/kleene.cpp | 2
branches/release/libs/spirit/test/karma/lazy.cpp | 2
branches/release/libs/spirit/test/karma/left_alignment.cpp | 2
branches/release/libs/spirit/test/karma/list.cpp | 2
branches/release/libs/spirit/test/karma/lit.cpp | 2
branches/release/libs/spirit/test/karma/none.cpp | 2
branches/release/libs/spirit/test/karma/optional.cpp | 2
branches/release/libs/spirit/test/karma/pattern.cpp | 2
branches/release/libs/spirit/test/karma/real_numerics.cpp | 2
branches/release/libs/spirit/test/karma/right_alignment.cpp | 2
branches/release/libs/spirit/test/karma/rule_fail.cpp | 3
branches/release/libs/spirit/test/karma/sequence.cpp | 2
branches/release/libs/spirit/test/karma/test.hpp | 2
branches/release/libs/spirit/test/lex/lexertl1.cpp | 2
branches/release/libs/spirit/test/lex/lexertl2.cpp | 2
branches/release/libs/spirit/test/lex/lexertl3.cpp | 2
branches/release/libs/spirit/test/lex/lexertl4.cpp | 2
branches/release/libs/spirit/test/lex/lexertl5.cpp | 2
branches/release/libs/spirit/test/lex/state_switcher_test.cpp | 2
branches/release/libs/spirit/test/lex/test.hpp | 2
branches/release/libs/spirit/test/lex/test_parser.hpp | 2
branches/release/libs/spirit/test/qi/alternative.cpp | 2
branches/release/libs/spirit/test/qi/binary.cpp | 2
branches/release/libs/spirit/test/qi/char.cpp | 2
branches/release/libs/spirit/test/qi/char_class.cpp | 4
branches/release/libs/spirit/test/qi/functor.cpp | 2
branches/release/libs/spirit/test/qi/grammar_fail.cpp | 2
branches/release/libs/spirit/test/qi/int.cpp | 2
branches/release/libs/spirit/test/qi/match_manip.cpp | 2
branches/release/libs/spirit/test/qi/real.cpp | 2
branches/release/libs/spirit/test/qi/rule_fail.cpp | 2
branches/release/libs/spirit/test/support/hold_any.cpp | 2
337 files changed, 1156 insertions(+), 1085 deletions(-)
Modified: branches/release/boost/spirit.hpp
==============================================================================
--- branches/release/boost/spirit.hpp (original)
+++ branches/release/boost/spirit.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2008 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
http://spirit.sourceforge.net/
Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/boost/spirit/home/classic/core/parser.hpp
==============================================================================
--- branches/release/boost/spirit/home/classic/core/parser.hpp (original)
+++ branches/release/boost/spirit/home/classic/core/parser.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -9,7 +9,7 @@
#define BOOST_SPIRIT_PARSER_HPP
#include <boost/config.hpp>
-#include <boost/type_traits.hpp>
+#include <boost/type_traits/remove_reference.hpp>
#include <boost/spirit/home/classic/namespace.hpp>
#include <boost/spirit/home/classic/core/scanner/scanner.hpp>
#include <boost/spirit/home/classic/core/nil.hpp>
Modified: branches/release/boost/spirit/home/classic/symbols/impl/tst.ipp
==============================================================================
--- branches/release/boost/spirit/home/classic/symbols/impl/tst.ipp (original)
+++ branches/release/boost/spirit/home/classic/symbols/impl/tst.ipp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -136,7 +136,7 @@
node_t** np = &root;
CharT ch = *first;
- BOOST_SPIRIT_ASSERT(first == last || ch != 0
+ BOOST_SPIRIT_ASSERT((first == last || ch != 0)
&& "Won't add string containing null character");
for (;;)
@@ -174,7 +174,7 @@
}
++first;
ch = (first == last) ? CharT(0) : *first;
- BOOST_SPIRIT_ASSERT(first == last || ch != 0
+ BOOST_SPIRIT_ASSERT((first == last || ch != 0)
&& "Won't add string containing null character");
np = &(**np).middle.link;
}
Modified: branches/release/boost/spirit/home/classic/utility/impl/chset/basic_chset.hpp
==============================================================================
--- branches/release/boost/spirit/home/classic/utility/impl/chset/basic_chset.hpp (original)
+++ branches/release/boost/spirit/home/classic/utility/impl/chset/basic_chset.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -11,6 +11,7 @@
///////////////////////////////////////////////////////////////////////////////
#include <bitset>
+#include <climits>
#include <boost/spirit/home/classic/utility/impl/chset/range_run.hpp>
#include <boost/spirit/home/classic/namespace.hpp>
Modified: branches/release/boost/spirit/home/classic/version.hpp
==============================================================================
--- branches/release/boost/spirit/home/classic/version.hpp (original)
+++ branches/release/boost/spirit/home/classic/version.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -5,8 +5,8 @@
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)
=============================================================================*/
-#if !defined(SPIRIT_VERSION_HPP)
-#define SPIRIT_VERSION_HPP
+#if !defined(SPIRIT_CLASSIC_VERSION_HPP)
+#define SPIRIT_CLASSIC_VERSION_HPP
///////////////////////////////////////////////////////////////////////////////
//
@@ -17,7 +17,7 @@
#if BOOST_VERSION < 103200
#error "Spirit v1.8.x needs at least Boost V1.32.0 to compile successfully."
-#endif
+#endif
///////////////////////////////////////////////////////////////////////////////
//
Modified: branches/release/boost/spirit/home/karma.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma.hpp (original)
+++ branches/release/boost/spirit/home/karma.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/action.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/action.hpp (original)
+++ branches/release/boost/spirit/home/karma/action.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/action/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/action/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/action/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/auxiliary/eps.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/auxiliary/eps.hpp (original)
+++ branches/release/boost/spirit/home/karma/auxiliary/eps.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/auxiliary/functor.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/auxiliary/functor.hpp (original)
+++ branches/release/boost/spirit/home/karma/auxiliary/functor.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/auxiliary/functor_director.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/auxiliary/functor_director.hpp (original)
+++ branches/release/boost/spirit/home/karma/auxiliary/functor_director.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/auxiliary/lazy.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/auxiliary/lazy.hpp (original)
+++ branches/release/boost/spirit/home/karma/auxiliary/lazy.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/auxiliary/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/auxiliary/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/auxiliary/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/auxiliary/none.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/auxiliary/none.hpp (original)
+++ branches/release/boost/spirit/home/karma/auxiliary/none.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/binary.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/binary.hpp (original)
+++ branches/release/boost/spirit/home/karma/binary.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/binary/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/binary/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/binary/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/char.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/char.hpp (original)
+++ branches/release/boost/spirit/home/karma/char.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/char/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/char/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/char/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/char/space.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/char/space.hpp (original)
+++ branches/release/boost/spirit/home/karma/char/space.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/delimit.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/delimit.hpp (original)
+++ branches/release/boost/spirit/home/karma/delimit.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/detail/generate_to.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/detail/generate_to.hpp (original)
+++ branches/release/boost/spirit/home/karma/detail/generate_to.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/detail/ostream_iterator.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/detail/ostream_iterator.hpp (original)
+++ branches/release/boost/spirit/home/karma/detail/ostream_iterator.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -208,8 +208,10 @@
#if !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)
private:
- friend struct enable_counting<output_iterator>;
- friend struct enable_buffering<output_iterator>;
+ friend struct enable_counting<output_iterator<OutputIterator> >;
+ friend struct enable_buffering<output_iterator<OutputIterator> >;
+ friend struct enable_counting<output_iterator<OutputIterator, int> >;
+ friend struct enable_buffering<output_iterator<OutputIterator, int> >;
#else
public:
#endif
Modified: branches/release/boost/spirit/home/karma/detail/string_generate.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/detail/string_generate.hpp (original)
+++ branches/release/boost/spirit/home/karma/detail/string_generate.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/directive.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/directive/alignment_meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/alignment_meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/alignment_meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/directive/case_meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/case_meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/case_meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/directive/delimiter_meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/delimiter_meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/delimiter_meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/directive/detail/center_alignment_generate.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/detail/center_alignment_generate.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/detail/center_alignment_generate.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/directive/detail/left_alignment_generate.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/detail/left_alignment_generate.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/detail/left_alignment_generate.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/directive/detail/right_alignment_generate.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/directive/detail/right_alignment_generate.hpp (original)
+++ branches/release/boost/spirit/home/karma/directive/detail/right_alignment_generate.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/domain.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/domain.hpp (original)
+++ branches/release/boost/spirit/home/karma/domain.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/generate.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/generate.hpp (original)
+++ branches/release/boost/spirit/home/karma/generate.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/nonterminal.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/nonterminal.hpp (original)
+++ branches/release/boost/spirit/home/karma/nonterminal.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/nonterminal/detail/rule.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/nonterminal/detail/rule.hpp (original)
+++ branches/release/boost/spirit/home/karma/nonterminal/detail/rule.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/nonterminal/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/nonterminal/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/nonterminal/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/boost/spirit/home/karma/nonterminal/nonterminal.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/nonterminal/nonterminal.hpp (original)
+++ branches/release/boost/spirit/home/karma/nonterminal/nonterminal.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/nonterminal/nonterminal_director.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/nonterminal/nonterminal_director.hpp (original)
+++ branches/release/boost/spirit/home/karma/nonterminal/nonterminal_director.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/numeric/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/numeric/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/numeric/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/boost/spirit/home/karma/numeric/numeric_fwd.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/numeric/numeric_fwd.hpp (original)
+++ branches/release/boost/spirit/home/karma/numeric/numeric_fwd.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -119,13 +119,14 @@
//
// Note: If the trailing_zeros flag is not in effect additional
// comments apply. See the comment for the fraction_part()
- // function below.
+ // function below. Moreover, this precision will be limited
+ // to the value of std::numeric_limits<T>::digits10 + 1
///////////////////////////////////////////////////////////////////////
static unsigned int
precision(T)
{
// generate max. 'fractional_precision' fractional digits
- return fractional_precision;
+ return fractional_precision;
}
///////////////////////////////////////////////////////////////////////
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/operator.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/boost/spirit/home/karma/operator/detail/alternative.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/detail/alternative.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator/detail/alternative.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/boost/spirit/home/karma/operator/detail/sequence.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/detail/sequence.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator/detail/sequence.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/operator/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/operator/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/operator/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -22,44 +22,44 @@
namespace detail
{
template <typename Parameter>
- struct optional_attribute
+ inline bool
+ optional_is_valid(boost::optional<Parameter> const& opt)
{
- static inline bool
- is_valid(boost::optional<Parameter> const& opt)
- {
- return opt;
- }
+ return opt;
+ }
- static inline bool
- is_valid(Parameter const&)
- {
- return true;
- }
+ template <typename Parameter>
+ inline bool
+ optional_is_valid(Parameter const& opt)
+ {
+ return true;
+ }
- static inline bool
- is_valid(unused_type)
- {
- return true;
- }
+ inline bool
+ optional_is_valid(unused_type)
+ {
+ return true;
+ }
- static inline Parameter const&
- get(boost::optional<Parameter> const& opt)
- {
- return boost::get(opt);
- }
+ template <typename Parameter>
+ inline Parameter const&
+ optional_get(boost::optional<Parameter> const& opt)
+ {
+ return get(opt);
+ }
- static inline Parameter const&
- get(Parameter const& p)
- {
- return p;
- }
+ template <typename Parameter>
+ inline Parameter const&
+ optional_get(Parameter const& opt)
+ {
+ return opt;
+ }
- static inline unused_type
- get(unused_type)
- {
- return unused;
- }
- };
+ inline unused_type
+ optional_get(unused_type)
+ {
+ return unused;
+ }
}
struct optional
@@ -86,16 +86,10 @@
result_of::subject<Component>::type::director
director;
- typedef typename traits::attribute_of<
- karma::domain, typename result_of::subject<Component>::type,
- Context, unused_type
- >::type attribute_type;
-
- typedef detail::optional_attribute<attribute_type> optional_type;
- if (optional_type::is_valid(param))
+ if (detail::optional_is_valid(param))
{
director::generate(subject(component), sink, ctx, d,
- optional_type::get(param));
+ detail::optional_get(param));
}
return true;
}
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/boost/spirit/home/karma/stream.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/stream.hpp (original)
+++ branches/release/boost/spirit/home/karma/stream.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/stream/detail/format_manip.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/stream/detail/format_manip.hpp (original)
+++ branches/release/boost/spirit/home/karma/stream/detail/format_manip.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/stream/detail/iterator_ostream.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/stream/detail/iterator_ostream.hpp (original)
+++ branches/release/boost/spirit/home/karma/stream/detail/iterator_ostream.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boist.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/stream/format_manip.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/stream/format_manip.hpp (original)
+++ branches/release/boost/spirit/home/karma/stream/format_manip.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/stream/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/stream/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/stream/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/string.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/string.hpp (original)
+++ branches/release/boost/spirit/home/karma/string.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/string/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/string/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/karma/string/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/karma/what.hpp
==============================================================================
--- branches/release/boost/spirit/home/karma/what.hpp (original)
+++ branches/release/boost/spirit/home/karma/what.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex.hpp (original)
+++ branches/release/boost/spirit/home/lex.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/domain.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/domain.hpp (original)
+++ branches/release/boost/spirit/home/lex/domain.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/action.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/action.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/action.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/detail/sequence.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/detail/sequence.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/detail/sequence.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/lexer_actions.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexer_actions.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexer_actions.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/lexer_fwd.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexer_fwd.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexer_fwd.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/lexertl/iterator_tokenizer.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexertl/iterator_tokenizer.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexertl/iterator_tokenizer.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_functor.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_functor.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_functor.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_generate_static.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_generate_static.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_generate_static.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2008 Ben Hanson
-// Copyright (c) 2008 Hartmut Kaiser
+// Copyright (c) 2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_iterator.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_iterator.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_iterator.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_lexer.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_lexer.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_lexer.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_static_functor.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_static_functor.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_static_functor.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_static_lexer.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_static_lexer.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_static_lexer.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_token.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_token.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/lexertl/lexertl_token.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/sequence.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/sequence.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/sequence.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/terminal_director.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/terminal_director.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/terminal_director.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/boost/spirit/home/lex/lexer/terminal_holder.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/terminal_holder.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/terminal_holder.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer/token_set.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer/token_set.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer/token_set.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer_lexertl.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer_lexertl.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer_lexertl.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/lexer_static_lexertl.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/lexer_static_lexertl.hpp (original)
+++ branches/release/boost/spirit/home/lex/lexer_static_lexertl.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/lex/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/qi/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/qi/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/lex/qi/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/qi/state/in_state.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/qi/state/in_state.hpp (original)
+++ branches/release/boost/spirit/home/lex/qi/state/in_state.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/qi/state/state_switcher.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/qi/state/state_switcher.hpp (original)
+++ branches/release/boost/spirit/home/lex/qi/state/state_switcher.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/qi/utility/plain_token.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/qi/utility/plain_token.hpp (original)
+++ branches/release/boost/spirit/home/lex/qi/utility/plain_token.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/set_state.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/set_state.hpp (original)
+++ branches/release/boost/spirit/home/lex/set_state.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/lex/tokenize_and_parse.hpp
==============================================================================
--- branches/release/boost/spirit/home/lex/tokenize_and_parse.hpp (original)
+++ branches/release/boost/spirit/home/lex/tokenize_and_parse.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/phoenix.hpp
==============================================================================
--- branches/release/boost/spirit/home/phoenix.hpp (original)
+++ branches/release/boost/spirit/home/phoenix.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -7,4 +7,17 @@
#if !defined(BOOST_SPIRIT_PHOENIX_APRIL_11_2008_0850AM)
#define BOOST_SPIRIT_PHOENIX_APRIL_11_2008_0850AM
+#include <boost/spirit/home/phoenix/algorithm.hpp>
+#include <boost/spirit/home/phoenix/bind.hpp>
+#include <boost/spirit/home/phoenix/container.hpp>
+#include <boost/spirit/home/phoenix/core.hpp>
+#include <boost/spirit/home/phoenix/function.hpp>
+#include <boost/spirit/home/phoenix/fusion.hpp>
+#include <boost/spirit/home/phoenix/object.hpp>
+#include <boost/spirit/home/phoenix/operator.hpp>
+#include <boost/spirit/home/phoenix/scope.hpp>
+#include <boost/spirit/home/phoenix/statement.hpp>
+#include <boost/spirit/home/phoenix/stl.hpp>
+#include <boost/spirit/home/phoenix/version.hpp>
+
#endif
Modified: branches/release/boost/spirit/home/phoenix/bind/bind_member_variable.hpp
==============================================================================
--- branches/release/boost/spirit/home/phoenix/bind/bind_member_variable.hpp (original)
+++ branches/release/boost/spirit/home/phoenix/bind/bind_member_variable.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,16 +1,25 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ 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)
==============================================================================*/
#ifndef PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP
#define PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP
+#include <boost/mpl/if.hpp>
+#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/remove_pointer.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+
#include <boost/spirit/home/phoenix/core/actor.hpp>
#include <boost/spirit/home/phoenix/core/compose.hpp>
#include <boost/spirit/home/phoenix/core/reference.hpp>
#include <boost/spirit/home/phoenix/core/detail/function_eval.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/remove_pointer.hpp>
+#include <boost/type_traits/remove_reference.hpp>
namespace boost { namespace phoenix
{
@@ -22,7 +31,15 @@
template <typename Class>
struct result
{
- typedef RT& type;
+ typedef typename boost::mpl::if_<
+ boost::is_const<
+ typename boost::remove_pointer<
+ typename boost::remove_reference<Class>::type
+ >::type
+ >
+ , const RT&
+ , RT&
+ >::type type;
};
member_variable(MP mp)
@@ -40,6 +57,18 @@
return obj->*mp;
}
+ template <typename Class>
+ RT const& operator()(Class const& obj) const
+ {
+ return obj.*mp;
+ }
+
+ template <typename Class>
+ RT const& operator()(Class const* obj) const
+ {
+ return obj->*mp;
+ }
+
MP mp;
};
}
Modified: branches/release/boost/spirit/home/phoenix/operator/io.hpp
==============================================================================
--- branches/release/boost/spirit/home/phoenix/operator/io.hpp (original)
+++ branches/release/boost/spirit/home/phoenix/operator/io.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -30,6 +30,21 @@
return compose<shift_right_eval>(phoenix::ref(a0), a1);
}
+ // resolve ambiguities with fusion.
+ template <typename T1>
+ inline typename detail::enable_if_ostream<std::ostream, T1>::type
+ operator<<(std::ostream& a0, actor<T1> const& a1)
+ {
+ return compose<shift_left_eval>(phoenix::ref(a0), a1);
+ }
+
+ template <typename T1>
+ inline typename detail::enable_if_istream<std::istream, T1>::type
+ operator>>(std::istream& a0, actor<T1> const& a1)
+ {
+ return compose<shift_right_eval>(phoenix::ref(a0), a1);
+ }
+
///////////////////////////////////////////////////////////////////////////////
//
// overloads for I/O manipulators.
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/auxiliary/functor.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/auxiliary/functor.hpp (original)
+++ branches/release/boost/spirit/home/qi/auxiliary/functor.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/auxiliary/functor_director.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/auxiliary/functor_director.hpp (original)
+++ branches/release/boost/spirit/home/qi/auxiliary/functor_director.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/auxiliary/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/auxiliary/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/qi/auxiliary/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/binary.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/binary.hpp (original)
+++ branches/release/boost/spirit/home/qi/binary.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/binary/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/binary/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/qi/binary/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/debug.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/debug.hpp (original)
+++ branches/release/boost/spirit/home/qi/debug.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/debug/detail/debug_handler.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/debug/detail/debug_handler.hpp (original)
+++ branches/release/boost/spirit/home/qi/debug/detail/debug_handler.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Copyright (c) 2001-2007 Joel de Guzman
Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/boost/spirit/home/qi/debug/detail/print_node_info.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/debug/detail/print_node_info.hpp (original)
+++ branches/release/boost/spirit/home/qi/debug/detail/print_node_info.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Copyright (c) 2001-2007 Joel de Guzman
Copyright (c) 2003 Gustavo Guerra
Modified: branches/release/boost/spirit/home/qi/debug/minimal_macros.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/debug/minimal_macros.hpp (original)
+++ branches/release/boost/spirit/home/qi/debug/minimal_macros.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/debug/simple_debug.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/debug/simple_debug.hpp (original)
+++ branches/release/boost/spirit/home/qi/debug/simple_debug.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/debug/simple_debug_macros.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/debug/simple_debug_macros.hpp (original)
+++ branches/release/boost/spirit/home/qi/debug/simple_debug_macros.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
http://spirit.sourceforge.net/
Distributed under the Boost Software License, Version 1.0. (See accompanying
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Copyright (c) 2006 Stephen Nutt
Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -338,7 +338,7 @@
if (!Accumulate)
{
// skip leading zeros
- while (it != last && *it == '0')
+ while (it != last && *it == '0' && leading_zeros < MaxDigits)
{
++it;
++leading_zeros;
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
http://spirit.sourceforge.net/
Distributed under the Boost Software License, Version 1.0. (See accompanying
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/stream.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/stream.hpp (original)
+++ branches/release/boost/spirit/home/qi/stream.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/stream/detail/iterator_istream.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/stream/detail/iterator_istream.hpp (original)
+++ branches/release/boost/spirit/home/qi/stream/detail/iterator_istream.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boist.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/stream/detail/match_manip.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/stream/detail/match_manip.hpp (original)
+++ branches/release/boost/spirit/home/qi/stream/detail/match_manip.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/stream/match_manip.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/stream/match_manip.hpp (original)
+++ branches/release/boost/spirit/home/qi/stream/match_manip.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/stream/meta_grammar.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/stream/meta_grammar.hpp (original)
+++ branches/release/boost/spirit/home/qi/stream/meta_grammar.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/qi/stream/stream.hpp
==============================================================================
--- branches/release/boost/spirit/home/qi/stream/stream.hpp (original)
+++ branches/release/boost/spirit/home/qi/stream/stream.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/algorithm/any_if.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/algorithm/any_if.hpp (original)
+++ branches/release/boost/spirit/home/support/algorithm/any_if.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/auxiliary/functor_holder.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/auxiliary/functor_holder.hpp (original)
+++ branches/release/boost/spirit/home/support/auxiliary/functor_holder.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/auxiliary/meta_function_holder.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/auxiliary/meta_function_holder.hpp (original)
+++ branches/release/boost/spirit/home/support/auxiliary/meta_function_holder.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -78,88 +78,90 @@
template <typename CharSet>
struct classify
{
+ typedef typename CharSet::char_type char_type;
+
template <typename Char>
static bool
is(tag::alnum, Char ch)
{
- return CharSet::isalnum(ch);
+ return CharSet::isalnum(char_type(ch));
}
template <typename Char>
static bool
is(tag::alpha, Char ch)
{
- return CharSet::isalpha(ch);
+ return CharSet::isalpha(char_type(ch));
}
template <typename Char>
static bool
is(tag::digit, Char ch)
{
- return CharSet::isdigit(ch);
+ return CharSet::isdigit(char_type(ch));
}
template <typename Char>
static bool
is(tag::xdigit, Char ch)
{
- return CharSet::isxdigit(ch);
+ return CharSet::isxdigit(char_type(ch));
}
template <typename Char>
static bool
is(tag::cntrl, Char ch)
{
- return CharSet::iscntrl(ch);
+ return CharSet::iscntrl(char_type(ch));
}
template <typename Char>
static bool
is(tag::graph, Char ch)
{
- return CharSet::isgraph(ch);
+ return CharSet::isgraph(char_type(ch));
}
template <typename Char>
static bool
is(tag::lower, Char ch)
{
- return CharSet::islower(ch);
+ return CharSet::islower(char_type(ch));
}
template <typename Char>
static bool
is(tag::print, Char ch)
{
- return CharSet::isprint(ch);
+ return CharSet::isprint(char_type(ch));
}
template <typename Char>
static bool
is(tag::punct, Char ch)
{
- return CharSet::ispunct(ch);
+ return CharSet::ispunct(char_type(ch));
}
template <typename Char>
static bool
is(tag::space, Char ch)
{
- return CharSet::isspace(ch);
+ return CharSet::isspace(char_type(ch));
}
template <typename Char>
static bool
is(tag::blank, Char ch)
{
- return CharSet::isblank BOOST_PREVENT_MACRO_SUBSTITUTION (ch);
+ return CharSet::isblank BOOST_PREVENT_MACRO_SUBSTITUTION (char_type(ch));
}
template <typename Char>
static bool
is(tag::upper, Char ch)
{
- return CharSet::isupper(ch);
+ return CharSet::isupper(char_type(ch));
}
};
@@ -167,18 +169,20 @@
template <typename CharSet>
struct convert
{
+ typedef typename CharSet::char_type char_type;
+
template <typename Char>
static Char
to(tag::lower, Char ch)
{
- return CharSet::tolower(ch);
+ return CharSet::tolower(char_type(ch));
}
template <typename Char>
static Char
to(tag::upper, Char ch)
{
- return CharSet::toupper(ch);
+ return CharSet::toupper(char_type(ch));
}
};
Modified: branches/release/boost/spirit/home/support/char_class/ascii.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/char_class/ascii.hpp (original)
+++ branches/release/boost/spirit/home/support/char_class/ascii.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/char_class/iso8859_1.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/char_class/iso8859_1.hpp (original)
+++ branches/release/boost/spirit/home/support/char_class/iso8859_1.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -562,7 +562,7 @@
///////////////////////////////////////////////////////////////////////////
struct iso8859_1
{
- typedef char char_type;
+ typedef unsigned char char_type;
static bool
is_ascii(int ch)
Modified: branches/release/boost/spirit/home/support/char_class/standard.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/char_class/standard.hpp (original)
+++ branches/release/boost/spirit/home/support/char_class/standard.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/char_class/standard_wide.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/char_class/standard_wide.hpp (original)
+++ branches/release/boost/spirit/home/support/char_class/standard_wide.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/container.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/container.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/container.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
http://spirit.sourceforge.net/
Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/boost/spirit/home/support/detail/hold_any.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/hold_any.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/hold_any.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2008 Hartmut Kaiser
+// Copyright (c) 2009 Hartmut Kaiser
// Copyright (c) Christopher Diggins 2005
// Copyright (c) Pablo Aguilar 2005
// Copyright (c) Kevlin Henney 2001
Modified: branches/release/boost/spirit/home/support/detail/lexer/char_traits.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/char_traits.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/char_traits.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// char_traits.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/consts.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/consts.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/consts.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// consts.h
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,12 +8,13 @@
#include <boost/config.hpp>
#include <boost/integer_traits.hpp>
-#include <boost/spirit/home/support/detail/lexer/size_t.hpp>
+#include "size_t.hpp"
namespace boost
{
namespace lexer
{
+ enum regex_flags {none = 0, icase = 1, dot_not_newline = 2};
// 0 = end state, 1 = id, 2 = lex state, 3 = bol, 4 = eol,
// 5 = dead_state_index
enum {end_state_index, id_index, state_index, bol_index, eol_index,
Modified: branches/release/boost/spirit/home/support/detail/lexer/containers/ptr_list.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/containers/ptr_list.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/containers/ptr_list.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// ptr_list.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/containers/ptr_vector.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/containers/ptr_vector.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/containers/ptr_vector.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// ptr_vector.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/conversion/char_state_machine.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/conversion/char_state_machine.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/conversion/char_state_machine.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// char_state_machine.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/debug.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/debug.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/debug.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// debug.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/generator.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/generator.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/generator.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// generator.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -143,15 +143,13 @@
typename detail::node::node_vector tree_vector_;
build_macros (token_map_, macrodeque_, macromap_,
- rules_.case_sensitive (), rules_.locale (), node_ptr_vector_,
- rules_.dot_not_newline (), seen_BOL_assertion_,
- seen_EOL_assertion_);
+ rules_.flags (), rules_.locale (), node_ptr_vector_,
+ seen_BOL_assertion_, seen_EOL_assertion_);
detail::node *root_ = parser::parse (regex_.c_str (),
regex_.c_str () + regex_.size (), *ids_iter_, *states_iter_,
- rules_.case_sensitive (), rules_.dot_not_newline (),
- rules_.locale (), node_ptr_vector_, macromap_, token_map_,
- seen_BOL_assertion_, seen_EOL_assertion_);
+ rules_.flags (), rules_.locale (), node_ptr_vector_, macromap_,
+ token_map_, seen_BOL_assertion_, seen_EOL_assertion_);
++regex_iter_;
++ids_iter_;
@@ -166,10 +164,9 @@
root_ = parser::parse (regex_.c_str (),
regex_.c_str () + regex_.size (), *ids_iter_,
- *states_iter_, rules_.case_sensitive (),
- rules_.dot_not_newline (), rules_.locale (), node_ptr_vector_,
- macromap_, token_map_, seen_BOL_assertion_,
- seen_EOL_assertion_);
+ *states_iter_, rules_.flags (), rules_.locale (),
+ node_ptr_vector_, macromap_, token_map_,
+ seen_BOL_assertion_, seen_EOL_assertion_);
tree_vector_.push_back (root_);
++regex_iter_;
++ids_iter_;
@@ -246,10 +243,9 @@
static void build_macros (token_map &token_map_,
const macro_deque ¯odeque_,
- typename parser::macro_map ¯omap_, const bool case_sensitive_,
+ typename parser::macro_map ¯omap_, const regex_flags flags_,
const std::locale &locale_, node_ptr_vector &node_ptr_vector_,
- const bool not_dot_newline_, bool &seen_BOL_assertion_,
- bool &seen_EOL_assertion_)
+ bool &seen_BOL_assertion_, bool &seen_EOL_assertion_)
{
for (typename macro_deque::const_iterator iter_ =
macrodeque_.begin (), end_ = macrodeque_.end ();
@@ -258,9 +254,9 @@
const typename rules::string &name_ = iter_->first;
const typename rules::string ®ex_ = iter_->second;
detail::node *node_ = parser::parse (regex_.c_str (),
- regex_.c_str () + regex_.size (), 0, 0, case_sensitive_,
- not_dot_newline_, locale_, node_ptr_vector_, macromap_,
- token_map_, seen_BOL_assertion_, seen_EOL_assertion_);
+ regex_.c_str () + regex_.size (), 0, 0, flags_,
+ locale_, node_ptr_vector_, macromap_, token_map_,
+ seen_BOL_assertion_, seen_EOL_assertion_);
macro_iter_pair map_iter_ = macromap_.
insert (macro_pair (name_, 0));
@@ -361,21 +357,19 @@
}
bool found_ = false;
+ typename size_t_vector::const_iterator hash_iter_ =
+ hash_vector_.begin ();
+ typename size_t_vector::const_iterator hash_end_ =
+ hash_vector_.end ();
+ typename node_set_vector::vector::const_iterator set_iter_ =
+ seen_sets_->begin ();
- // Stop VC++ 2005 crashing...
- if (!hash_vector_.empty ())
+ for (; hash_iter_ != hash_end_; ++hash_iter_, ++set_iter_)
{
- const std::size_t *hash_iter_ = &hash_vector_.front ();
- const std::size_t *hash_end_ = hash_iter_ + hash_vector_.size ();
- node_set **set_iter_ = &seen_sets_->front ();
+ found_ = *hash_iter_ == hash_ && *(*set_iter_) == *set_ptr_;
+ ++index_;
- for (; hash_iter_ != hash_end_; ++hash_iter_, ++set_iter_)
- {
- found_ = *hash_iter_ == hash_ && *(*set_iter_) == *set_ptr_;
- ++index_;
-
- if (found_) break;
- }
+ if (found_) break;
}
if (!found_)
@@ -662,7 +656,7 @@
if (!node_->end_state ())
{
- std::size_t token_ = node_->token ();
+ const std::size_t token_ = node_->token ();
if (token_ != null_token)
{
@@ -674,12 +668,12 @@
index_set_.insert (token_);
list_->back () = new equivset (index_set_,
- node_->greedy (), node_->token (), node_->followpos ());
+ node_->greedy (), token_, node_->followpos ());
}
else
{
list_->back () = new equivset (set_mapping_[token_],
- node_->greedy (), node_->token (), node_->followpos ());
+ node_->greedy (), token_, node_->followpos ());
}
}
}
Modified: branches/release/boost/spirit/home/support/detail/lexer/input.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/input.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/input.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -113,7 +113,7 @@
(&_input->_state_machine->_lookup->front ()->front (),
_input->_state_machine->_dfa_alphabet.front (),
&_input->_state_machine->_dfa->front ()->front (),
- _input->_begin, _data.end, _input->_end);
+ _data.bol, _data.end, _input->_end);
}
else
{
@@ -129,7 +129,7 @@
_input->_state_machine->_seen_EOL_assertion)
{
_data.id = next (*_input->_state_machine, _data.state,
- _input->_begin, _data.end, _input->_end);
+ _data.bol, _data.end, _input->_end);
}
else
{
@@ -147,13 +147,12 @@
std::size_t next (const basic_state_machine
<typename Traits::char_type> &state_machine_,
- std::size_t &start_state_, const FwdIter &start_,
+ std::size_t &start_state_, bool bol_,
FwdIter &start_token_, const FwdIter &end_)
{
if (start_token_ == end_) return 0;
again:
- bool bol_ = _data.bol;
const std::size_t * lookup_ = &state_machine_._lookup[start_state_]->
front ();
std::size_t dfa_alphabet_ = state_machine_._dfa_alphabet[start_state_];
@@ -228,7 +227,11 @@
_data.bol = end_bol_;
start_token_ = end_token_;
- if (id_ == 0) goto again;
+ if (id_ == 0)
+ {
+ bol_ = _data.bol;
+ goto again;
+ }
}
else
{
@@ -299,11 +302,10 @@
std::size_t next (const std::size_t * const lookup_,
const std::size_t dfa_alphabet_, const std::size_t * const dfa_,
- FwdIter const &start_, FwdIter &start_token_, FwdIter const &end_)
+ bool bol_, FwdIter &start_token_, FwdIter const &end_)
{
if (start_token_ == end_) return 0;
- bool bol_ = _data.bol;
const std::size_t *ptr_ = dfa_ + dfa_alphabet_;
FwdIter curr_ = start_token_;
bool end_state_ = *ptr_ != 0;
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/parser.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/parser.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/parser.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// parser.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -52,14 +52,13 @@
*/
static node *parse (const CharT *start_, const CharT * const end_,
const std::size_t id_, const std::size_t dfa_state_,
- const bool case_sensitive_, const bool dot_not_newline_,
- const std::locale &locale_, node_ptr_vector &node_ptr_vector_,
- const macro_map ¯omap_, typename tokeniser::token_map &map_,
+ const regex_flags flags_, const std::locale &locale_,
+ node_ptr_vector &node_ptr_vector_, const macro_map ¯omap_,
+ typename tokeniser::token_map &map_,
bool &seen_BOL_assertion_, bool &seen_EOL_assertion_)
{
node *root_ = 0;
- state state_ (start_, end_, case_sensitive_, locale_,
- dot_not_newline_);
+ state state_ (start_, end_, flags_, locale_);
token lhs_token_;
token rhs_token_;
token_stack token_stack_;
@@ -91,7 +90,7 @@
ss_ << "A syntax error occurred: '" <<
lhs_token_.precedence_string () <<
"' against '" << rhs_token_.precedence_string () <<
- "' at index " << state_._index << ".";
+ "' at index " << state_.index () << ".";
throw runtime_error (ss_.str ().c_str ());
break;
}
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/num_token.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/num_token.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/num_token.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// num_token.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -133,13 +133,11 @@
{{"BEGIN"}, {"REGEX"}, {"OREXP"}, {"SEQUENCE"}, {"SUB"}, {"EXPRESSION"},
{"REPEAT"}, {"DUPLICATE"}, {"|"}, {"CHARSET"}, {"MACRO"},
{"("}, {")"}, {"?"}, {"??"}, {"*"}, {"*?"}, {"+"}, {"+?"}, {"{n[,[m]]}"},
- {"{n[,[m]]}?"}, {"END"}
-};
+ {"{n[,[m]]}?"}, {"END"}};
#else
{"BEGIN", "REGEX", "OREXP", "SEQUENCE", "SUB", "EXPRESSION", "REPEAT",
"DUPLICATE", "|", "CHARSET", "MACRO", "(", ")", "?", "??", "*", "*?",
- "+", "+?", "{n[,[m]]}", "{n[,[m]]}?", "END"
-};
+ "+", "+?", "{n[,[m]]}", "{n[,[m]]}?", "END"};
#endif
}
}
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// tokeniser.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -54,6 +54,12 @@
"(missing '\"').");
}
+ if (state_._paren_count)
+ {
+ throw runtime_error ("Unexpected end of regex "
+ "(missing ')').");
+ }
+
token_.set (num_token::END, null_token);
}
else
@@ -78,6 +84,7 @@
case '(':
token_.set (num_token::OPENPAREN, null_token);
++state_._paren_count;
+ read_options (state_);
break;
case ')':
--state_._paren_count;
@@ -87,11 +94,17 @@
std::ostringstream ss_;
ss_ << "Number of open parenthesis < 0 at index " <<
- state_._index - 1 << '.';
+ state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
token_.set (num_token::CLOSEPAREN, null_token);
+
+ if (!state_._flags_stack.empty ())
+ {
+ state_._flags = state_._flags_stack.top ();
+ state_._flags_stack.pop ();
+ }
break;
case '?':
if (!state_.eos () && *state_._curr == '?')
@@ -136,18 +149,36 @@
token_.set (num_token::OR, null_token);
break;
case '^':
- token_.set (num_token::CHARSET, bol_token);
+ if (state_._curr - 1 == state_._start)
+ {
+ token_.set (num_token::CHARSET, bol_token);
+ }
+ else
+ {
+ create_charset_token (string (1, ch_), false,
+ map_, token_);
+ }
+
state_._seen_BOL_assertion = true;
break;
case '$':
- token_.set (num_token::CHARSET, eol_token);
+ if (state_._curr == state_._end)
+ {
+ token_.set (num_token::CHARSET, eol_token);
+ }
+ else
+ {
+ create_charset_token (string (1, ch_), false,
+ map_, token_);
+ }
+
state_._seen_EOL_assertion = true;
break;
case '.':
{
string dot_;
- if (state_._dot_not_newline)
+ if (state_._flags & dot_not_newline)
{
dot_ = '\n';
}
@@ -161,7 +192,7 @@
break;
}
default:
- if (!state_._case_sensitive &&
+ if ((state_._flags & icase) &&
(std::isupper (ch_, state_._locale) ||
std::islower (ch_, state_._locale)))
{
@@ -188,6 +219,74 @@
private:
typedef basic_re_tokeniser_helper<CharT> tokeniser_helper;
+ static void read_options (state &state_)
+ {
+ if (!state_.eos () && *state_._curr == '?')
+ {
+ CharT ch_ = 0;
+ bool eos_ = false;
+ bool negate_ = false;
+
+ state_.increment ();
+ eos_ = state_.next (ch_);
+ state_._flags_stack.push (state_._flags);
+
+ while (!eos_ && ch_ != ':')
+ {
+ switch (ch_)
+ {
+ case '-':
+ negate_ ^= 1;
+ break;
+ case 'i':
+ if (negate_)
+ {
+ state_._flags = static_cast<regex_flags>
+ (state_._flags & ~icase);
+ }
+ else
+ {
+ state_._flags = static_cast<regex_flags>
+ (state_._flags | icase);
+ }
+
+ negate_ = false;
+ break;
+ case 's':
+ if (negate_)
+ {
+ state_._flags = static_cast<regex_flags>
+ (state_._flags | dot_not_newline);
+ }
+ else
+ {
+ state_._flags = static_cast<regex_flags>
+ (state_._flags & ~dot_not_newline);
+ }
+
+ negate_ = false;
+ break;
+ default:
+ {
+ std::ostringstream ss_;
+
+ ss_ << "Unknown option at " <<
+ state_.index () - 1 << '.';
+ throw runtime_error (ss_.str ().c_str ());
+ }
+ }
+
+ eos_ = state_.next (ch_);
+ }
+
+ // End of string handler will handle early termination
+ }
+ else if (!state_._flags_stack.empty ())
+ {
+ state_._flags_stack.push (state_._flags);
+ }
+ }
+
static void escape (state &state_, token_map &map_, num_token &token_)
{
CharT ch_ = 0;
@@ -197,8 +296,8 @@
if (str_)
{
- state state2_ (str_ + 1, str_ + str_len_, state_._case_sensitive,
- state_._locale, state_._dot_not_newline);
+ state state2_ (str_ + 1, str_ + str_len_, state_._flags,
+ state_._locale);
charset (state2_, map_, token_);
}
@@ -328,7 +427,8 @@
{
std::ostringstream ss_;
- ss_ << "Missing '}' at index " << state_._index - 1 << '.';
+ ss_ << "Missing '}' at index " <<
+ state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
@@ -367,7 +467,7 @@
{
std::ostringstream ss_;
- ss_ << "Missing '}' at index " << state_._index - 1 << '.';
+ ss_ << "Missing '}' at index " << state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
@@ -381,7 +481,7 @@
std::ostringstream ss_;
ss_ << "Cannot have exactly zero repeats preceding index " <<
- state_._index << '.';
+ state_.index () << '.';
throw runtime_error (ss_.str ().c_str ());
}
@@ -389,8 +489,8 @@
{
std::ostringstream ss_;
- ss_ << "Max less than min preceding index " << state_._index
- << '.';
+ ss_ << "Max less than min preceding index " <<
+ state_.index () << '.';
throw runtime_error (ss_.str ().c_str ());
}
@@ -412,7 +512,7 @@
std::ostringstream ss_;
ss_ << "Invalid MACRO name at index " <<
- state_._index - 1 << '.';
+ state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
@@ -432,7 +532,7 @@
{
std::ostringstream ss_;
- ss_ << "Missing '}' at index " << state_._index - 1 << '.';
+ ss_ << "Missing '}' at index " << state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser_helper.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser_helper.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser_helper.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// tokeniser_helper.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -92,8 +92,7 @@
if (chset_)
{
state temp_state_ (str_ + 1, str_ + str_len_,
- state_._case_sensitive, state_._locale,
- state_._dot_not_newline);
+ state_._flags, state_._locale);
string temp_chars_;
bool temp_negated_ = false;
@@ -104,7 +103,7 @@
std::ostringstream ss_;
ss_ << "Mismatch in charset negation preceding "
- "index " << state_._index - 1 << '.';
+ "index " << state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
@@ -139,7 +138,7 @@
}
else if (!chset_)
{
- if (!state_._case_sensitive &&
+ if ((state_._flags & icase) &&
(std::isupper (prev_, state_._locale) ||
std::islower (prev_, state_._locale)))
{
@@ -373,7 +372,7 @@
std::ostringstream ss_;
ss_ << "Invalid control char at index " <<
- state_._index - 1 << '.';
+ state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
}
@@ -401,7 +400,7 @@
std::ostringstream ss_;
ss_ << "Illegal char following \\x at index " <<
- state_._index - 1 << '.';
+ state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
@@ -454,7 +453,7 @@
std::ostringstream ss_;
ss_ << "Charset cannot form start of range preceding "
- "index " << state_._index - 1 << '.';
+ "index " << state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
@@ -478,7 +477,7 @@
std::ostringstream ss_;
ss_ << "Charset cannot form end of range preceding index "
- << state_._index << '.';
+ << state_.index () << '.';
throw runtime_error (ss_.str ().c_str ());
}
}
@@ -488,7 +487,7 @@
std::ostringstream ss_;
ss_ << "POSIX char class cannot form end of range at "
- "index " << state_._index - 1 << '.';
+ "index " << state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
*/
@@ -516,7 +515,7 @@
std::ostringstream ss_;
ss_ << "Invalid range in charset preceding index " <<
- state_._index - 1 << '.';
+ state_.index () - 1 << '.';
throw runtime_error (ss_.str ().c_str ());
}
@@ -526,7 +525,7 @@
{
CharT ch_ = static_cast<CharT> (start_);
- if (!state_._case_sensitive &&
+ if ((state_._flags & icase) &&
(std::isupper (ch_, state_._locale) ||
std::islower (ch_, state_._locale)))
{
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser_state.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser_state.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/tokeniser/re_tokeniser_state.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,13 +1,15 @@
// tokeniser_state.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_LEXER_RE_TOKENISER_STATE_HPP
#define BOOST_LEXER_RE_TOKENISER_STATE_HPP
+#include "../../consts.hpp"
#include <locale>
#include "../../size_t.hpp"
+#include <stack>
namespace boost
{
@@ -18,26 +20,24 @@
template<typename CharT>
struct basic_re_tokeniser_state
{
- const CharT *_curr;
+ const CharT * const _start;
const CharT * const _end;
- bool _case_sensitive;
+ const CharT *_curr;
+ regex_flags _flags;
+ std::stack<regex_flags> _flags_stack;
std::locale _locale;
- bool _dot_not_newline;
- std::size_t _index;
long _paren_count;
bool _in_string;
bool _seen_BOL_assertion;
bool _seen_EOL_assertion;
- basic_re_tokeniser_state (const CharT *regex_, const CharT * const end_,
- const bool case_sensitive_, const std::locale locale_,
- const bool dot_not_newline_) :
- _curr (regex_),
+ basic_re_tokeniser_state (const CharT *start_, const CharT * const end_,
+ const regex_flags flags_, const std::locale locale_) :
+ _start (start_),
_end (end_),
- _case_sensitive (case_sensitive_),
+ _curr (start_),
+ _flags (flags_),
_locale (locale_),
- _dot_not_newline (dot_not_newline_),
- _index (0),
_paren_count (0),
_in_string (false),
_seen_BOL_assertion (false),
@@ -48,12 +48,11 @@
// prevent VC++ 7.1 warning:
const basic_re_tokeniser_state &operator = (const basic_re_tokeniser_state &rhs_)
{
- _curr = rhs_._curr;
+ _start = rhs_._start;
_end = rhs_._end;
- _case_sensitive = rhs_._case_sensitive;
+ _curr = rhs_._curr;
+ _flags = rhs_._flags;
_locale = rhs_._locale;
- _dot_not_newline = rhs_._dot_not_newline;
- _index = rhs_._index;
_paren_count = rhs_._paren_count;
_in_string = rhs_._in_string;
_seen_BOL_assertion = rhs_._seen_BOL_assertion;
@@ -79,7 +78,11 @@
inline void increment ()
{
++_curr;
- ++_index;
+ }
+
+ inline std::size_t index ()
+ {
+ return _curr - _start;
}
inline bool eos ()
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/tree/end_node.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/tree/end_node.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/tree/end_node.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// end_node.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/tree/iteration_node.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/tree/iteration_node.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/tree/iteration_node.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// iteration_node.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/tree/leaf_node.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/tree/leaf_node.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/tree/leaf_node.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// leaf_node.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/tree/node.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/tree/node.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/tree/node.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// node.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/tree/selection_node.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/tree/selection_node.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/tree/selection_node.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// selection_node.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/parser/tree/sequence_node.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/parser/tree/sequence_node.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/parser/tree/sequence_node.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// sequence_node.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/partition/charset.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/partition/charset.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/partition/charset.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// charset.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/partition/equivset.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/partition/equivset.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/partition/equivset.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// equivset.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -61,20 +61,10 @@
if (!overlap_._index_vector.empty ())
{
- overlap_._id = _id;
-
- // LHS abstemious transitions have priority.
- if (_greedy < rhs_._greedy)
- {
- overlap_._greedy = _greedy;
- }
- else
- {
- overlap_._greedy = _greedy;
- }
-
// Note that the LHS takes priority in order to
// respect rule ordering priority in the lex spec.
+ overlap_._id = _id;
+ overlap_._greedy = _greedy;
overlap_._followpos = _followpos;
node_vector::const_iterator overlap_begin_ =
Modified: branches/release/boost/spirit/home/support/detail/lexer/rules.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/rules.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/rules.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// rules.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -61,10 +61,8 @@
typedef std::map<string, std::size_t> string_size_t_map;
typedef std::pair<string, std::size_t> string_size_t_pair;
- basic_rules (const bool case_sensitive_ = true,
- const bool dot_not_newline_ = true) :
- _case_sensitive (case_sensitive_),
- _dot_not_newline (dot_not_newline_)
+ basic_rules (const regex_flags flags_ = dot_not_newline) :
+ _flags (flags_)
{
add_state (initial ());
}
@@ -77,9 +75,8 @@
_regexes.clear ();
_ids.clear ();
_states.clear ();
- _case_sensitive = true;
+ _flags = dot_not_newline;
_locale = std::locale ();
- _dot_not_newline = false;
add_state (initial ());
}
@@ -95,19 +92,22 @@
}
}
- void case_sensitive (const bool case_sensitive_)
+ void flags (const regex_flags flags_)
{
- _case_sensitive = case_sensitive_;
+ _flags = flags_;
}
- bool case_sensitive () const
+ regex_flags flags () const
{
- return _case_sensitive;
+ return _flags;
}
- void locale (std::locale &locale_)
+ std::locale imbue (std::locale &locale_)
{
+ std::locale loc_ = _locale;
+
_locale = locale_;
+ return loc_;
}
const std::locale &locale () const
@@ -115,16 +115,6 @@
return _locale;
}
- void dot_not_newline (const bool dot_not_newline_)
- {
- _dot_not_newline = dot_not_newline_;
- }
-
- bool dot_not_newline () const
- {
- return _dot_not_newline;
- }
-
std::size_t state (const CharT *name_) const
{
std::size_t state_ = npos;
@@ -328,9 +318,8 @@
string_deque_deque _regexes;
id_vector_deque _ids;
id_vector_deque _states;
- bool _case_sensitive;
+ regex_flags _flags;
std::locale _locale;
- bool _dot_not_newline;
void add (const CharT *curr_state_, const string ®ex_,
const std::size_t id_, const CharT *new_state_, const bool check_)
Modified: branches/release/boost/spirit/home/support/detail/lexer/runtime_error.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/runtime_error.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/runtime_error.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// runtime_error.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/serialise.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/serialise.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/serialise.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// examples/serialise.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/size_t.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/size_t.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/size_t.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// size_t.h
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/lexer/string_token.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/lexer/string_token.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/lexer/string_token.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// string_token.hpp
-// Copyright (c) 2007 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/to_narrow.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/to_narrow.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/to_narrow.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/detail/values.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/detail/values.hpp (original)
+++ branches/release/boost/spirit/home/support/detail/values.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
http://spirit.sourceforge.net/
Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/boost/spirit/home/support/meta_grammar/basic_transforms.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/meta_grammar/basic_transforms.hpp (original)
+++ branches/release/boost/spirit/home/support/meta_grammar/basic_transforms.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/nonterminal/locals.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/nonterminal/locals.hpp (original)
+++ branches/release/boost/spirit/home/support/nonterminal/locals.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
// Copyright (c) 2001-2007 Joel de Guzman
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/home/support/placeholders.hpp
==============================================================================
--- branches/release/boost/spirit/home/support/placeholders.hpp (original)
+++ branches/release/boost/spirit/home/support/placeholders.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/boost/spirit/version.hpp
==============================================================================
--- branches/release/boost/spirit/version.hpp (original)
+++ branches/release/boost/spirit/version.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -6,22 +6,15 @@
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)
=============================================================================*/
-#ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_VERSION
-#define BOOST_SPIRIT_DEPRECATED_INCLUDE_VERSION
+#if !defined(SPIRIT_VERSION_NOVEMBER_13_2008_0834AM)
+#define SPIRIT_VERSION_NOVEMBER_13_2008_0834AM
-#include <boost/version.hpp>
-
-#if BOOST_VERSION >= 103800
-#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
-# pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_version.hpp")
-#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__)
-# warning "This header is deprecated. Please use: boost/spirit/include/classic_version.hpp"
-#endif
-#endif
-
-#if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE)
-#define BOOST_SPIRIT_USE_OLD_NAMESPACE
-#endif
-#include <boost/spirit/include/classic_version.hpp>
+///////////////////////////////////////////////////////////////////////////////
+//
+// This is the version of the current Spirit distribution
+//
+///////////////////////////////////////////////////////////////////////////////
+#define SPIRIT_VERSION 0x2000
+#define SPIRIT_PIZZA_VERSION EVERYTHING_BUT_ANCHOVIES // :-)
#endif
Modified: branches/release/libs/spirit/classic/test/position_iterator_tests.cpp
==============================================================================
--- branches/release/libs/spirit/classic/test/position_iterator_tests.cpp (original)
+++ branches/release/libs/spirit/classic/test/position_iterator_tests.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -397,15 +397,15 @@
template <typename IterT>
void CheckDistance(IterT begin)
{
- IterT end;
+ IterT end;
- std::size_t std_distance = std::distance(begin, end);
-
- std::size_t manual_count = 0;
- for(IterT it = begin; it != end; ++it)
- ++manual_count;
-
- BOOST_TEST(std_distance == manual_count);
+ std::size_t std_distance = std::distance(begin, end);
+
+ std::size_t manual_count = 0;
+ for(IterT it = begin; it != end; ++it)
+ ++manual_count;
+
+ BOOST_TEST(std_distance == manual_count);
}
@@ -465,9 +465,9 @@
void CheckDistance(void)
{
- const char* b = "\n0123\r\n4567\n89\n\r";
+ const char* b = "\n0123\r\n4567\n89\n\r";
typedef const char* iter_t;
-
+
test_impl::CheckDistance(position_iterator<iter_t>(b, b+15, ""));
test_impl::CheckDistance(position_iterator2<iter_t>(b, b+15, ""));
test_impl::CheckDistance(position_iterator<iter_t, file_position_without_column>(b, b+15, ""));
Modified: branches/release/libs/spirit/doc/acknowledgments.qbk
==============================================================================
--- branches/release/libs/spirit/doc/acknowledgments.qbk (original)
+++ branches/release/libs/spirit/doc/acknowledgments.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/faq.qbk
==============================================================================
--- branches/release/libs/spirit/doc/faq.qbk (original)
+++ branches/release/libs/spirit/doc/faq.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/html/index.html
==============================================================================
--- branches/release/libs/spirit/doc/html/index.html (original)
+++ branches/release/libs/spirit/doc/html/index.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -34,7 +34,7 @@
<div><p class="copyright">Copyright © 2001-2008 Joel de Guzman,
Hartmut Kaiser</p></div>
<div><div class="legalnotice">
-<a name="id616212"></a><p>
+<a name="id386666"></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>
@@ -184,11 +184,11 @@
</p>
</blockquote></div>
<a name="spirit.preface.history"></a><h3>
-<a name="id616266"></a>
+<a name="id388764"></a>
<a href="index.html#spirit.preface.history">History</a>
</h3>
<a name="spirit.preface._emphasis_80s__emphasis_"></a><h3>
-<a name="id616279"></a>
+<a name="id386336"></a>
<a href="index.html#spirit.preface._emphasis_80s__emphasis_"><span class="emphasis"><em>80s</em></span></a>
</h3>
<p>
@@ -202,7 +202,7 @@
recursive-descent parser. This worked very well.
</p>
<a name="spirit.preface._emphasis_90s__emphasis_"></a><h3>
-<a name="id616297"></a>
+<a name="id386375"></a>
<a href="index.html#spirit.preface._emphasis_90s__emphasis_"><span class="emphasis"><em>90s</em></span></a>
</h3>
<p>
@@ -238,8 +238,7 @@
version was implemented with run-time polymorphic classes. A parser is generated
at run time by feeding in production rule strings such as:
</p>
-<pre class="programlisting">
-<span class="string">"prod ::= {'A' | 'B'} 'C';"</span>
+<pre class="programlisting"><span class="string">"prod ::= {'A' | 'B'} 'C';"</span>
</pre>
<p>
A compile function compiled the parser, dynamically creating a hierarchy of
@@ -247,7 +246,7 @@
here: pre-Spirit.
</p>
<a name="spirit.preface._emphasis_2001_to_2006__emphasis_"></a><h3>
-<a name="id616340"></a>
+<a name="id388110"></a>
<a href="index.html#spirit.preface._emphasis_2001_to_2006__emphasis_"><span class="emphasis"><em>2001
to 2006</em></span></a>
</h3>
@@ -277,7 +276,7 @@
for design and implementation quality, robustness, and reusability.
</p>
<a name="spirit.preface._emphasis_2007__emphasis_"></a><h3>
-<a name="id616375"></a>
+<a name="id387263"></a>
<a href="index.html#spirit.preface._emphasis_2007__emphasis_"><span class="emphasis"><em>2007</em></span></a>
</h3>
<p>
@@ -307,7 +306,7 @@
Templates</a> library called -Boost.Proto-.
</p>
<a name="spirit.preface.new_ideas__spirit_v2"></a><h3>
-<a name="id616441"></a>
+<a name="id387382"></a>
<a href="index.html#spirit.preface.new_ideas__spirit_v2">New Ideas: Spirit V2</a>
</h3>
<p>
@@ -345,7 +344,7 @@
same underlying component library as for the parser and generator libraries.
</p>
<a name="spirit.preface.how_to_use_this_manual"></a><h3>
-<a name="id616491"></a>
+<a name="id387485"></a>
<a href="index.html#spirit.preface.how_to_use_this_manual">How to use this manual</a>
</h3>
<p>
@@ -376,7 +375,7 @@
icons precede some text to indicate:
</p>
<div class="table">
-<a name="id616539"></a><p class="title"><b>Table 1. Icons</b></p>
+<a name="id387571"></a><p class="title"><b>Table 1. Icons</b></p>
<table class="table" summary="Icons">
<colgroup>
<col>
@@ -497,7 +496,7 @@
Tools</a>.
</p>
<a name="spirit.preface.support"></a><h3>
-<a name="id616780"></a>
+<a name="id386631"></a>
<a href="index.html#spirit.preface.support">Support</a>
</h3>
<p>
@@ -513,7 +512,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: July 16, 2008 at 03:04:03 GMT</small></p></td>
+<td align="left"><p><small>Last revised: December 23, 2008 at 09:37:55 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Modified: branches/release/libs/spirit/doc/html/spirit/acknowledgments.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/acknowledgments.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/acknowledgments.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -46,7 +46,7 @@
<span class="bold"><b>FIXME</b></span>: Add more people
</p>
<a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h3>
-<a name="id665442"></a>
+<a name="id506650"></a>
<a 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>
</h3>
Modified: branches/release/libs/spirit/doc/html/spirit/introduction.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/introduction.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/introduction.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -26,18 +26,18 @@
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="spirit.introduction"></a>Introduction</h2></div></div></div>
<p>
- Boost Spirit is an object oriented, recursive-descent parser and output generation
- library for C++. It allows to write grammars and format descriptions using
- a format very similar to EBNF (Extended Backus Naur Form, see [4]) 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.
+ 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 EBNF (Extended Backus Naur Form, see [4]) directly in C++.
+ These inline grammar specifications can mix freely with other C++ code and,
+ thanks to the generative power of C++ templates, are immediately executable.
In retrospect, conventional compiler-compilers or parser-generators have to
perform an additional translation step from the source EBNF code to C or C++
code.
</p>
<p>
- The syntax and semantics of the libraries API directly form domain specific
- embedded languages (DSEL). In fact, Spirit exposes 3 different DSEL's to the
+ The syntax and semantics of the libraries' API directly form domain-specific
+ embedded languages (DSEL). In fact, Spirit exposes 3 different DSELs to the
user:
</p>
<div class="itemizedlist"><ul type="disc">
@@ -53,43 +53,43 @@
</ul></div>
<p>
Since the target input grammars and output formats are written entirely in
- C++ we do not need any separate tools to compile, preprocess, or integrate
- those into the build process. Spirit
+ C++ we do not need any separate tools to compile, preprocess or integrate those
+ into the build process. Spirit
allows seamless integration of the parsing and output generation process with
other C++ code. Often this allows for simpler and more efficient code.
</p>
<p>
- Both, the created parsers and generators, are fully attributed which allows
+ Both the created parsers and generators are fully attributed which allows you
to easily build and handle hierarchical data structures in memory. These data
structures resemble the structure of the input data and can directly be used
- to generate arbitrarily formatted output.
+ to generate arbitrarily-formatted output.
</p>
<p>
The figure below depicts the
- overall structure of the Boost Spirit library. The library consists out of
- 4 major parts:
+ overall structure of the Boost Spirit library. The library consists of 4 major
+ parts:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
-<span class="emphasis"><em>Spirit.Classic</em></span>: This is the almost unchanged code base
+<span class="emphasis"><em>Spirit.Classic</em></span>: This is the almost-unchanged code base
taken from the former Boost Spirit V1.8 distribution. It has been moved into
the namespace boost::spirit::classic. A special compatibility layer has been
added to ensure complete compatibility with existing code using Spirit V1.8.
</li>
<li>
-<span class="emphasis"><em>Spirit.Qi</em></span>: This is the parser library allowing to build
- recursive descent parsers. The exposed domain specific language can be used
- to describe the grammars to implement, and the rules for storing the parsed
- information.
+<span class="emphasis"><em>Spirit.Qi</em></span>: This is the parser library allowing you to
+ build recursive descent parsers. The exposed domain-specific language can
+ be used to describe the grammars to implement, and the rules for storing
+ the parsed information.
</li>
<li>
-<span class="emphasis"><em>Spirit.Lex</em></span>: This is the library usable to create tokinizers
- (lexers). The domain specific language exposed by <span class="emphasis"><em>Spirit.Lex</em></span>
+<span class="emphasis"><em>Spirit.Lex</em></span>: This is the library usable to create tokenizers
+ (lexers). The domain-specific language exposed by <span class="emphasis"><em>Spirit.Lex</em></span>
</li>
<li>
<span class="emphasis"><em>Spirit.Karma</em></span>: This is the generator library allowing
- to create code for recursive descent, data type driven output formatting.
- The exposed domain specific language is almost equivalent to the parser description
+ you to create code for recursive descent, data type-driven output formatting.
+ The exposed domain-specific language is almost equivalent to the parser description
language used in <span class="emphasis"><em>Spirit.Qi</em></span>, except that it is used to
describe the required output format to generate from a given data structure.
</li>
@@ -117,9 +117,9 @@
The <a href="introduction.html#spirit.spiritkarmaflow" title="Figure 2. The place of Spirit.Qi and Spirit.Karma
in a data transformation flow of a typical application">figure</a> below shows the typical
data flow of some input being converted to some internal representation. After
- some (optional) transformation this data is converted back into some different,
- external representation. The picture highlights Spirit's the place in this
- data transformation flow.
+ some (optional) transformation these data are converted back into some different,
+ external representation. The picture highlights Spirit's place in this data
+ transformation flow.
</p>
<p>
</p>
@@ -132,10 +132,10 @@
</div>
<p>
</p>
-<a name="spirit.introduction.a_quick_overview_about_parsing_with__emphasis_spirit_qi__emphasis_"></a><h3>
-<a name="id617238"></a>
- <a href="introduction.html#spirit.introduction.a_quick_overview_about_parsing_with__emphasis_spirit_qi__emphasis_">A
- quick overview about Parsing with <span class="emphasis"><em>Spirit.Qi</em></span></a>
+<a name="spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_"></a><h3>
+<a name="id457695"></a>
+ <a 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>
</h3>
<p>
<span class="emphasis"><em>Spirit.Qi</em></span> is Spirit's sublibrary dealing with generating
@@ -145,8 +145,7 @@
<p>
A simple EBNF grammar snippet:
</p>
-<pre class="programlisting">
-<span class="identifier">group</span> <span class="special">::=</span> <span class="char">'('</span> <span class="identifier">expression</span> <span class="char">')'</span>
+<pre class="programlisting"><span class="identifier">group</span> <span class="special">::=</span> <span class="char">'('</span> <span class="identifier">expression</span> <span class="char">')'</span>
<span class="identifier">factor</span> <span class="special">::=</span> <span class="identifier">integer</span> <span class="special">|</span> <span class="identifier">group</span>
<span class="identifier">term</span> <span class="special">::=</span> <span class="identifier">factor</span> <span class="special">((</span><span class="char">'*'</span> <span class="identifier">factor</span><span class="special">)</span> <span class="special">|</span> <span class="special">(</span><span class="char">'/'</span> <span class="identifier">factor</span><span class="special">))*</span>
<span class="identifier">expression</span> <span class="special">::=</span> <span class="identifier">term</span> <span class="special">((</span><span class="char">'+'</span> <span class="identifier">term</span><span class="special">)</span> <span class="special">|</span> <span class="special">(</span><span class="char">'-'</span> <span class="identifier">term</span><span class="special">))*</span>
@@ -155,8 +154,7 @@
is approximated using facilities of Spirit's <span class="emphasis"><em>Qi</em></span> sublibrary
as seen in this code snippet:
</p>
-<pre class="programlisting">
-<span class="identifier">group</span> <span class="special">=</span> <span class="char">'('</span> <span class="special">>></span> <span class="identifier">expression</span> <span class="special">>></span> <span class="char">')'</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">group</span> <span class="special">=</span> <span class="char">'('</span> <span class="special">>></span> <span class="identifier">expression</span> <span class="special">>></span> <span class="char">')'</span><span class="special">;</span>
<span class="identifier">factor</span> <span class="special">=</span> <span class="identifier">integer</span> <span class="special">|</span> <span class="identifier">group</span><span class="special">;</span>
<span class="identifier">term</span> <span class="special">=</span> <span class="identifier">factor</span> <span class="special">>></span> <span class="special">*((</span><span class="char">'*'</span> <span class="special">>></span> <span class="identifier">factor</span><span class="special">)</span> <span class="special">|</span> <span class="special">(</span><span class="char">'/'</span> <span class="special">>></span> <span class="identifier">factor</span><span class="special">));</span>
<span class="identifier">expression</span> <span class="special">=</span> <span class="identifier">term</span> <span class="special">>></span> <span class="special">*((</span><span class="char">'+'</span> <span class="special">>></span> <span class="identifier">term</span><span class="special">)</span> <span class="special">|</span> <span class="special">(</span><span class="char">'-'</span> <span class="special">>></span> <span class="identifier">term</span><span class="special">));</span>
@@ -164,15 +162,16 @@
<p>
Through the magic of expression templates, this is perfectly valid and executable
C++ code. The production rule <tt class="computeroutput"><span class="identifier">expression</span></tt>
- is in fact an object that has a member function parse that does the work given
- a source code written in the grammar that we have just declared. Yes, it's
- a calculator. We shall simplify for now by skipping the type declarations and
- the definition of the rule integer invoked by factor. Now, the production rule
- <tt class="computeroutput"><span class="identifier">expression</span></tt> in our grammar specification,
- traditionally called the start symbol, can recognize inputs such as:
+ is, in fact, an object that has a member function <tt class="computeroutput"><span class="identifier">parse</span></tt>
+ that does the work given a source code written in the grammar that we have
+ just declared. Yes, it's a calculator. We shall simplify for now by skipping
+ the type declarations and the definition of the rule <tt class="computeroutput"><span class="identifier">integer</span></tt>
+ invoked by <tt class="computeroutput"><span class="identifier">factor</span></tt>. Now, the
+ production rule <tt class="computeroutput"><span class="identifier">expression</span></tt>
+ in our grammar specification, traditionally called the <tt class="computeroutput"><span class="identifier">start</span></tt>
+ symbol, can recognize inputs such as:
</p>
-<pre class="programlisting">
-<span class="number">12345</span>
+<pre class="programlisting"><span class="number">12345</span>
<span class="special">-</span><span class="number">12345</span>
<span class="special">+</span><span class="number">12345</span>
<span class="number">1</span> <span class="special">+</span> <span class="number">2</span>
@@ -191,8 +190,7 @@
shift >> operators. Since there are no 'empty' operators in C++, it is
simply not possible to write something like:
</p>
-<pre class="programlisting">
-<span class="identifier">a</span> <span class="identifier">b</span>
+<pre class="programlisting"><span class="identifier">a</span> <span class="identifier">b</span>
</pre>
<p>
as seen in math syntax, for example, to mean multiplication or, in our case,
@@ -202,8 +200,7 @@
operator, with arrows pointing to the right, to mean "is followed by".
Thus we write:
</p>
-<pre class="programlisting">
-<span class="identifier">a</span> <span class="special">>></span> <span class="identifier">b</span>
+<pre class="programlisting"><span class="identifier">a</span> <span class="special">>></span> <span class="identifier">b</span>
</pre>
<p>
The alternative operator <tt class="computeroutput"><span class="special">|</span></tt> and
@@ -213,37 +210,34 @@
not least, the Kleene star <tt class="computeroutput"><span class="special">*</span></tt> which
used to be a postfix operator in EBNF becomes a prefix. Instead of:
</p>
-<pre class="programlisting">
-<span class="identifier">a</span><span class="special">*</span> <span class="comment">//... in EBNF syntax,
+<pre class="programlisting"><span class="identifier">a</span><span class="special">*</span> <span class="comment">//... in EBNF syntax,
</span></pre>
<p>
we write:
</p>
-<pre class="programlisting">
-<span class="special">*</span><span class="identifier">a</span> <span class="comment">//... in Spirit.
+<pre class="programlisting"><span class="special">*</span><span class="identifier">a</span> <span class="comment">//... in Spirit.
</span></pre>
<p>
since there are no postfix stars, <tt class="computeroutput"><span class="special">*</span></tt>,
in C/C++. Finally, we terminate each rule with the ubiquitous semi-colon,
<tt class="computeroutput"><span class="special">;</span></tt>.
</p>
-<a name="spirit.introduction.a_quick_overview_about_output_generation_with__emphasis_spirit_karma__emphasis_"></a><h3>
-<a name="id620086"></a>
- <a href="introduction.html#spirit.introduction.a_quick_overview_about_output_generation_with__emphasis_spirit_karma__emphasis_">A
- quick overview about Output Generation with <span class="emphasis"><em>Spirit.Karma</em></span></a>
+<a name="spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_"></a><h3>
+<a name="id458990"></a>
+ <a 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>
</h3>
<p>
- Spirit not only allows to describe the structure of the input. Starting with
- Version 2.0 it enables the specification of the output format for your data
- in a very similar way, and based on a single syntax and compatible semantics.
+ Spirit not only allows you to describe the structure of the input. Starting
+ with Version 2.0 it enables the specification of the output format for your
+ data in a similar way, and based on a single syntax and compatible semantics.
</p>
<p>
Let's assume we need to generate a textual representation from a simple data
- structure as a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span></tt>. Conventional
+ structure such as a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span></tt>. Conventional
code probably would look like:
</p>
-<pre class="programlisting">
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">v</span> <span class="special">(</span><span class="identifier">initialize_and_fill</span><span class="special">());</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">v</span> <span class="special">(</span><span class="identifier">initialize_and_fill</span><span class="special">());</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">iterator</span> <span class="identifier">end</span> <span class="special">=</span> <span class="identifier">v</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
<span class="keyword">for</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">iterator</span> <span class="identifier">it</span> <span class="special">=</span> <span class="identifier">v</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span> <span class="identifier">it</span> <span class="special">!=</span> <span class="identifier">end</span><span class="special">;</span> <span class="special">++</span><span class="identifier">it</span><span class="special">)</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="special">*</span><span class="identifier">it</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
@@ -251,19 +245,18 @@
<p>
which is not very flexible and quite difficult to maintain when it comes to
changing the required output format. Spirit's sublibrary <span class="emphasis"><em>Karma</em></span>
- allows to specify output formats for arbitrary data structures in a very flexible
- way. following snippet is the <span class="emphasis"><em>Karma</em></span> format description
- used to create the very The same output as the traditional code above:
+ allows you to specify output formats for arbitrary data structures in a very
+ flexible way. The following snippet is the <span class="emphasis"><em>Karma</em></span> format
+ description used to create the same output as the traditional code above:
</p>
-<pre class="programlisting">
-<span class="special">*(</span><span class="identifier">int_</span> <span class="special"><<</span> <span class="identifier">eol</span><span class="special">)</span>
+<pre class="programlisting"><span class="special">*(</span><span class="identifier">int_</span> <span class="special"><<</span> <span class="identifier">eol</span><span class="special">)</span>
</pre>
<p>
Here are some more examples of format descriptions for different output representations
of the same <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span></tt>:
</p>
<div class="table">
-<a name="id620430"></a><p class="title"><b>Table 2. Different output formats for `std::vector<int>`</b></p>
+<a name="id459465"></a><p class="title"><b>Table 2. Different output formats for `std::vector<int>`</b></p>
<table class="table" summary="Different output formats for `std::vector<int>`">
<colgroup>
<col>
@@ -366,19 +359,19 @@
</table>
</div>
<p>
- The syntax is very similar to <span class="emphasis"><em>Qi</em></span> with the exception that
- we use the <tt class="computeroutput"><span class="special"><<</span></tt> operator for
+ The syntax is similar to <span class="emphasis"><em>Qi</em></span> with the exception that we
+ use the <tt class="computeroutput"><span class="special"><<</span></tt> operator for
output concatenation. This should be easy to understand as it follows the conventions
used in the Standard's I/O streams.
</p>
<p>
- Another important feature of <span class="emphasis"><em>karma</em></span> is to allow to fully
+ Another important feature of <span class="emphasis"><em>karma</em></span> allows you to fully
decouple the data type from the output format. You can use the same output
- format with different data types as long as these conforma conceptually. The
+ format with different data types as long as these conform conceptually. The
next table gives some related examples.
</p>
<div class="table">
-<a name="id620803"></a><p class="title"><b>Table 3. Different data types usable with the output format
+<a name="id459935"></a><p class="title"><b>Table 3. Different data types usable with the output format
`(*int_ << eol)`</b></p>
<table class="table" summary="Different data types usable with the output format
`(*int_ << eol)`">
Modified: branches/release/libs/spirit/doc/html/spirit/lex.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -96,23 +96,23 @@
is not perfect.
</li>
</ul></div>
-<a name="spirit.lex.lexer_introduction.why_using_a_separate_lexer"></a><h4>
-<a name="id648365"></a>
- <a href="lex.html#spirit.lex.lexer_introduction.why_using_a_separate_lexer">Why
- Using a Separate Lexer</a>
+<a name="spirit.lex.lexer_introduction.why_use_a_separate_lexer_"></a><h4>
+<a name="id488039"></a>
+ <a href="lex.html#spirit.lex.lexer_introduction.why_use_a_separate_lexer_">Why
+ Use a Separate Lexer?</a>
</h4>
<p>
Typically, lexical scanning is done in a separate module from the parser,
- feeding the parser with a stream of input tokens only. Now, theoretically
- it is not necessary to do this separation. In the end there is only one set
+ feeding the parser with a stream of input tokens only. Theoretically it is
+ not necessary implement this separation as in the end there is only one set
of syntactical rules defining the language, so in theory we could write the
whole parser in one module. In fact, <span class="emphasis"><em>Spirit.Qi</em></span> allows
- to write parsers without using a lexer, parsing the input character stream
+ you to write parsers without using a lexer, parsing the input character stream
directly, and for the most part this is the way Spirit
has been used since its invention.
</p>
<p>
- However, the separation has both practical and theoretical bases and proves
+ However, this separation has both practical and theoretical bases and proves
to be very useful in practical applications. In 1956, Noam Chomsky defined
the "Chomsky Hierarchy" of grammars:
</p>
@@ -147,25 +147,24 @@
handled as regular expressions tend to be the lower-level parts, such as
the definition of an identifier or of an integer value:
</p>
-<pre class="programlisting">
-<span class="identifier">letter</span> <span class="special">:=</span> <span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">zA</span><span class="special">-</span><span class="identifier">Z</span><span class="special">]</span>
+<pre class="programlisting"><span class="identifier">letter</span> <span class="special">:=</span> <span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">zA</span><span class="special">-</span><span class="identifier">Z</span><span class="special">]</span>
<span class="identifier">digit</span> <span class="special">:=</span> <span class="special">[</span><span class="number">0</span><span class="special">-</span><span class="number">9</span><span class="special">]</span>
<span class="identifier">identifier</span> <span class="special">:=</span> <span class="identifier">letter</span> <span class="special">[</span> <span class="identifier">letter</span> <span class="special">|</span> <span class="identifier">digit</span> <span class="special">]*</span>
-<span class="identifier">integer</span> <span class="special">:=</span> <span class="identifier">digit</span><span class="special">*</span>
+<span class="identifier">integer</span> <span class="special">:=</span> <span class="identifier">digit</span><span class="special">+</span>
</pre>
<p>
Higher level parts of practical grammars tend to be more complex and can't
- be implemented using plain regular expressions anymore. We need to store
- information on the built-in hardware stack while recursing the grammar hierarchy,
- and that in fact this is the preferred approach used for top-down parsing.
- Since it takes a different kind of abstract machine to parse the two types
- of grammars, it proved to be efficient to separate the lexical scanner into
- a separate module which is built around the idea of a state machine. The
- goal here is to use the simplest parsing technique needed for the job.
+ be implemented using plain regular expressions. We need to store information
+ on the built-in hardware stack while recursing the grammar hierarchy, and
+ that in fact this is the preferred approach used for top-down parsing. Since
+ it takes a different kind of abstract machine to parse the two types of grammars,
+ it proved to be efficient to separate the lexical scanner into a separate
+ module which is built around the idea of a state machine. The goal here is
+ to use the simplest parsing technique needed for the job.
</p>
<p>
- Another, more practical reason for separating the scanner from the parser
+ Another, more practical, reason for separating the scanner from the parser
is the need for backtracking during parsing. The input data is a stream of
characters, which is often thought to be processed left to right without
any backtracking. Unfortunately, in practice most of the time that isn't
@@ -197,7 +196,7 @@
grammar recognizers.
</p>
<a name="spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_"></a><h4>
-<a name="id648579"></a>
+<a name="id488369"></a>
<a href="lex.html#spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_">Advantages
of using <span class="emphasis"><em>Spirit.Lex</em></span></a>
</h4>
@@ -210,22 +209,22 @@
making it possible to freely access any context information and data structure.
Since the C++ compiler sees all the code it will generate optimal code nomatter
what configuration options have been chosen by the user. <span class="emphasis"><em>Spirit.Lex</em></span>
- gives you all the features you could get from a similar Flex
- program without the need to leave C++ as a host language:
+ gives you the vast majority of features you could get from a similar Flex program without the need
+ to leave C++ as a host language:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
- the definition of tokens is done using regular expressions (patterns)
+ The definition of tokens is done using regular expressions (patterns)
</li>
<li>
- the token definitions can refer to special substitution string (pattern
+ The token definitions can refer to special substitution strings (pattern
macros) simplifying pattern definitions
</li>
<li>
- the generated lexical scanner may have multiple start states
+ The generated lexical scanner may have multiple start states
</li>
<li>
- it is possible to attach code to any of the token definitions; this code
+ It is possible to attach code to any of the token definitions; this code
gets executed whenever the corresponding token pattern has been matched
</li>
</ul></div>
@@ -238,14 +237,15 @@
Model</a>) - a model very similar to the way Flex
operates - we will mainly focus on the opposite, the <span class="emphasis"><em>dynamic</em></span>
model. You can directly integrate the token definitions into your C++ program,
- building the lexical analyzer dynamicly at runtime. The dynamic model is
+ building the lexical analyzer dynamically at runtime. The dynamic model is
something not supported by Flex
or other lexical scanner generators (such as re2c,
<a href="http://www.cs.queensu.ca/~thurston/ragel/" target="_top">Ragel</a>, etc.).
- But it is very flexible and allows to speed up the development of your application.
+ But it is very flexible and 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><h4>
-<a name="id648682"></a>
+<a name="id488543"></a>
<a href="lex.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>
</h4>
Modified: branches/release/libs/spirit/doc/html/spirit/lex/abstracts.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/abstracts.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/abstracts.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -84,7 +84,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="id658935"></a>
+<a name="id499645"></a>
<a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token">The
Anatomy of a Token</a>
</h6>
@@ -134,7 +134,7 @@
</p>
<div class="figure">
<a name="spirit.lex.tokenstructure"></a><p class="title"><b>Figure 5. The structure of a token</b></p>
-<span class="inlinemediaobject"><img src="../.././images/TokenStructure.png" alt="The
+<span class="inlinemediaobject"><img src="../.././images/tokenstructure.png" alt="The
structure of a token"></span>
</div>
<p>
@@ -178,8 +178,7 @@
Here is the template prototype of the lexertl_token<>
template:
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
<span class="keyword">typename</span> <span class="identifier">Iterator</span> <span class="special">=</span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*,</span>
<span class="keyword">typename</span> <span class="identifier">AttributeTypes</span> <span class="special">=</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector0</span><span class="special"><>,</span>
<span class="keyword">typename</span> <span class="identifier">HasState</span> <span class="special">=</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span>
@@ -222,7 +221,7 @@
when it is requested for the first time.
</p>
<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition"></a><h6>
-<a name="id659461"></a>
+<a name="id500459"></a>
<a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition">The
Physiognomy of a Token Definition</a>
</h6>
@@ -235,8 +234,7 @@
<p>
The template prototype of this class is shown here:
</p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special"><</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
<span class="keyword">typename</span> <span class="identifier">Attribute</span> <span class="special">=</span> <span class="identifier">unused_type</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Char</span> <span class="special">=</span> <span class="keyword">char</span>
<span class="special">></span>
@@ -296,7 +294,7 @@
</td></tr>
</table></div>
<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token_class___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_"></a><h6>
-<a name="id659718"></a>
+<a name="id500867"></a>
<a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token_class___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_">Examples
of using lexertl_token<></a>
</h6>
@@ -320,8 +318,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="comment">// these tokens expose the iterator_range of the matched input sequence
+<pre class="programlisting"><span class="comment">// these tokens expose the iterator_range of the matched input sequence
</span><span class="identifier">token_def</span><span class="special"><></span> <span class="identifier">if_</span><span class="special">,</span> <span class="identifier">else_</span><span class="special">,</span> <span class="identifier">while_</span><span class="special">;</span>
<span class="comment">// The following two tokens have an associated value type, 'identifier'
@@ -361,8 +358,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="comment">// This is the lexer token type to use. The second template parameter lists
+<pre class="programlisting"><span class="comment">// This is the lexer token type to use. The second template parameter lists
</span><span class="comment">// all attribute types used for token_def's during token definition (see
</span><span class="comment">// calculator_tokens<> above). Here we use the predefined lexertl token
</span><span class="comment">// type, but any compatible token type may be used instead.
Modified: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -26,17 +26,17 @@
<div class="titlepage"><div><div><h4 class="title">
<a name="spirit.lex.abstracts.lexer_states"></a> Lexer States</h4></div></div></div>
<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions"></a><h5>
-<a name="id664594"></a>
+<a name="id505296"></a>
<a 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>
</h5>
<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions"></a><h5>
-<a name="id664607"></a>
+<a name="id505327"></a>
<a 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>
</h5>
<a name="spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser"></a><h5>
-<a name="id664620"></a>
+<a name="id505358"></a>
<a 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>
</h5>
Modified: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -82,8 +82,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">enum</span> <span class="identifier">tokenids</span>
+<pre class="programlisting"><span class="keyword">enum</span> <span class="identifier">tokenids</span>
<span class="special">{</span>
<span class="identifier">IDANY</span> <span class="special">=</span> <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> <span class="special">+</span> <span class="number">1</span><span class="special">,</span>
<span class="special">};</span>
@@ -104,8 +103,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="comment">// This token definition class can be used without any change for all three
+<pre class="programlisting"><span class="comment">// This token definition class can be used without any change for all three
</span><span class="comment">// possible use cases: a dynamic lexical analyzer, a code generator, and a
</span><span class="comment">// static lexical analyzer.
</span><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">BaseLexer</span><span class="special">></span>
@@ -147,8 +145,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="comment">// This is an ordinary grammar definition following the rules defined by
+<pre class="programlisting"><span class="comment">// This is an ordinary grammar definition following the rules defined by
</span><span class="comment">// Spirit.Qi. There is nothing specific about it, except it gets the token
</span><span class="comment">// definition class instance passed to the constructor to allow accessing the
</span><span class="comment">// embedded token_def<> instances.
@@ -181,7 +178,7 @@
<p>
</p>
<a name="spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer"></a><h5>
-<a name="id662050"></a>
+<a name="id503276"></a>
<a href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer">Generating
the Static Analyzer</a>
</h5>
@@ -202,8 +199,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="comment">// create the lexer object instance needed to invoke the generator
</span> <span class="identifier">word_count_tokens</span><span class="special"><</span><span class="identifier">lexertl_lexer</span><span class="special"><></span> <span class="special">></span> <span class="identifier">word_count</span><span class="special">;</span> <span class="comment">// the token definition
@@ -228,7 +224,7 @@
the next topic (the full generated code can be viewed here).
</p>
<a name="spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer"></a><h5>
-<a name="id662419"></a>
+<a name="id503799"></a>
<a href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer">Modifying
the Dynamic Analyzer</a>
</h5>
@@ -248,8 +244,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexer_static_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexer_static_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
</p>
@@ -269,8 +264,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="comment">// Define the token type to be used: 'std::string' is available as the type
</span> <span class="comment">// of the token value.
Modified: branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -30,12 +30,12 @@
Input Data"> Tokenizing
Input Data</a></h4></div></div></div>
<a name="spirit.lex.abstracts.lexer_tokenizing.the_tokenize___function"></a><h5>
-<a name="id660244"></a>
+<a name="id501672"></a>
<a href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_tokenize___function">The
tokenize() function</a>
</h5>
<a name="spirit.lex.abstracts.lexer_tokenizing.the_generate_static___function"></a><h5>
-<a name="id660261"></a>
+<a name="id501700"></a>
<a href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_generate_static___function">The
generate_static() function</a>
</h5>
Modified: branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -26,22 +26,22 @@
<div class="titlepage"><div><div><h4 class="title">
<a name="spirit.lex.reference.lexer_class"></a>Lexer Class</h4></div></div></div>
<a name="spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model"></a><h5>
-<a name="id664720"></a>
+<a name="id505548"></a>
<a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model">The
lexertl_lexer Class Implementing the Dynamic Model</a>
</h5>
<a name="spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model"></a><h5>
-<a name="id664733"></a>
+<a name="id505576"></a>
<a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model">The
lexertl_actor_lexer Class Implementing the Dynamic Model</a>
</h5>
<a name="spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model"></a><h5>
-<a name="id664746"></a>
+<a name="id505606"></a>
<a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model">The
lexertl_static_lexer Class Implementing the Static Model</a>
</h5>
<a name="spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model"></a><h5>
-<a name="id664759"></a>
+<a name="id505637"></a>
<a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model">The
lexertl_static_actor_lexer Class Implementing the Static Model</a>
</h5>
Modified: branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -43,7 +43,7 @@
(for the full example code see here: word_count_functor.cpp).
</p>
<a name="spirit.lex.tutorials.lexer_quickstart1.prerequisites"></a><h5>
-<a name="id648951"></a>
+<a name="id488986"></a>
<a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.prerequisites">Prerequisites</a>
</h5>
<p>
@@ -59,8 +59,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexer_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexer_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ref</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
@@ -76,8 +75,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
<span class="keyword">using</span> <span class="keyword">namespace</span> <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>
</pre>
<p>
@@ -85,7 +83,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart1.defining_tokens"></a><h5>
-<a name="id649646"></a>
+<a name="id489371"></a>
<a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.defining_tokens">Defining
Tokens</a>
</h5>
@@ -120,8 +118,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <span class="identifier">lexer_def</span><span class="special"><</span><span class="identifier">Lexer</span><span class="special">></span>
<span class="special">{</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Self</span><span class="special">></span>
@@ -142,7 +139,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work"></a><h5>
-<a name="id649992"></a>
+<a name="id489877"></a>
<a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work">Doing
the Useful Work</a>
</h5>
@@ -168,8 +165,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">counter</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">counter</span>
<span class="special">{</span>
<span class="comment">// the function operator gets called for each of the matched tokens
</span> <span class="comment">// c, l, w are references to the counters used to keep track of the numbers
@@ -208,7 +204,7 @@
as well.
</p>
<a name="spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together"></a><h5>
-<a name="id650494"></a>
+<a name="id490577"></a>
<a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together">Pulling
Everything Together</a>
</h5>
@@ -227,8 +223,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="comment">// these variables are used to count characters, words and lines
</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">c</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">w</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
@@ -264,7 +259,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><h5>
-<a name="id651326"></a>
+<a name="id491716"></a>
<a 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>
</h5>
@@ -306,8 +301,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="special">%{</span>
+<pre class="programlisting"><span class="special">%{</span>
<span class="preprocessor">#define</span> <span class="identifier">ID_WORD</span> <span class="number">1000</span>
<span class="preprocessor">#define</span> <span class="identifier">ID_EOL</span> <span class="number">1001</span>
<span class="preprocessor">#define</span> <span class="identifier">ID_CHAR</span> <span class="number">1002</span>
Modified: branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -45,7 +45,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><h5>
-<a name="id652117"></a>
+<a name="id492776"></a>
<a href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.prerequisites">Prerequisites</a>
</h5>
<p>
@@ -65,8 +65,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">support_argument</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">support_argument</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexer_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_statement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
@@ -85,8 +84,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
<span class="keyword">using</span> <span class="keyword">namespace</span> <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>
</pre>
<p>
@@ -103,8 +101,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="special">%{</span>
+<pre class="programlisting"><span class="special">%{</span>
<span class="keyword">int</span> <span class="identifier">c</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">w</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
<span class="special">%}</span>
<span class="special">%%</span>
@@ -123,7 +120,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id652815"></a>
+<a name="id493728"></a>
<a 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>
</h5>
@@ -140,8 +137,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <span class="identifier">lexer_def</span><span class="special"><</span><span class="identifier">Lexer</span><span class="special">></span>
<span class="special">{</span>
<span class="identifier">word_count_tokens</span><span class="special">()</span>
@@ -181,8 +177,7 @@
but it is possible to insert any C++ function or function object as long
as it exposes the interface:
</p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">f</span> <span class="special">(</span><span class="identifier">Range</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">Idtype</span> <span class="identifier">id</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&</span> <span class="identifier">matched</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">&</span> <span class="identifier">ctx</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span> <span class="special">(</span><span class="identifier">Range</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">Idtype</span> <span class="identifier">id</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&</span> <span class="identifier">matched</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">&</span> <span class="identifier">ctx</span><span class="special">);</span>
</pre>
<div class="variablelist">
<p class="title"><b>where:</b></p>
@@ -221,8 +216,7 @@
When using a C++ function as the semantic action the following prototypes
are allowed as well:
</p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">f</span> <span class="special">(</span><span class="identifier">Range</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">Idtype</span> <span class="identifier">id</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&</span> <span class="identifier">matched</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span> <span class="special">(</span><span class="identifier">Range</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">Idtype</span> <span class="identifier">id</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&</span> <span class="identifier">matched</span><span class="special">);</span>
<span class="keyword">void</span> <span class="identifier">f</span> <span class="special">(</span><span class="identifier">Range</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">Idtype</span> <span class="identifier">id</span><span class="special">);</span>
<span class="keyword">void</span> <span class="identifier">f</span> <span class="special">(</span><span class="identifier">Range</span> <span class="identifier">r</span><span class="special">);</span>
</pre>
@@ -240,7 +234,7 @@
to the internal lexer context.
</p>
<a name="spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer"></a><h5>
-<a name="id653861"></a>
+<a name="id495186"></a>
<a href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer">Associating
Token Definitions with the Lexer</a>
</h5>
@@ -255,8 +249,7 @@
combining the different token definitions using the <tt class="computeroutput"><span class="special">|</span></tt>
operator. Here is the code snippet again:
</p>
-<pre class="programlisting">
-<span class="identifier">self</span> <span class="special">=</span> <span class="identifier">word</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">w</span><span class="special">),</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)]</span>
+<pre class="programlisting"><span class="identifier">self</span> <span class="special">=</span> <span class="identifier">word</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">w</span><span class="special">),</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)]</span>
<span class="special">|</span> <span class="identifier">eol</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">),</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">l</span><span class="special">)]</span>
<span class="special">|</span> <span class="identifier">any</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)]</span>
<span class="special">;</span>
Modified: branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -52,7 +52,7 @@
<div class="figure">
<a name="spirit.lex.flowcontrol"></a><p class="title"><b>Figure 4. The common flow control implemented while parsing
combined with lexical analysis</b></p>
-<span class="inlinemediaobject"><img src="../../.././images/FlowOfControl.png" alt="The common flow
+<span class="inlinemediaobject"><img src="../../.././images/flowofcontrol.png" alt="The common flow
control implemented while parsing combined with lexical analysis"></span>
</div>
<p>
@@ -70,7 +70,7 @@
code see here: word_count.cpp).
</p>
<a name="spirit.lex.tutorials.lexer_quickstart3.prerequisites"></a><h5>
-<a name="id655484"></a>
+<a name="id495762"></a>
<a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.prerequisites">Prerequisites</a>
</h5>
<p>
@@ -92,8 +92,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexer_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_statement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
@@ -111,8 +110,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">;</span>
<span class="keyword">using</span> <span class="keyword">namespace</span> <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>
</pre>
@@ -121,7 +119,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart3.defining_tokens"></a><h5>
-<a name="id655884"></a>
+<a name="id496323"></a>
<a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.defining_tokens">Defining
Tokens</a>
</h5>
@@ -144,8 +142,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <span class="identifier">lexer_def</span><span class="special"><</span><span class="identifier">Lexer</span><span class="special">></span>
<span class="special">{</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Self</span><span class="special">></span>
@@ -177,7 +174,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers"></a><h5>
-<a name="id656242"></a>
+<a name="id496819"></a>
<a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers">Using
Token Definition Instances as Parsers</a>
</h5>
@@ -285,8 +282,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">word_count_grammar</span> <span class="special">:</span> <span class="identifier">grammar</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">></span>
<span class="special">{</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">TokenDef</span><span class="special">></span>
@@ -355,7 +351,7 @@
</p></td></tr>
</table></div>
<a name="spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together"></a><h5>
-<a name="id657239"></a>
+<a name="id498236"></a>
<a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together">Pulling
Everything Together</a>
</h5>
@@ -373,8 +369,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="callout_bug"><a name="spirit4co" href="lexer_quickstart3.html#spirit4"><img src="../../../images/callouts/1.png" alt="1" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl_token</span><span class="special"><</span>
<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span>
Modified: branches/release/libs/spirit/doc/html/spirit/notes/style_guide.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/notes/style_guide.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/notes/style_guide.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -58,8 +58,7 @@
all, what belongs to one level, at one indentation level.
</li>
</ul></div>
-<pre class="programlisting">
-<span class="identifier">program</span>
+<pre class="programlisting"><span class="identifier">program</span>
<span class="special">=</span> <span class="identifier">program_heading</span> <span class="special">[</span><span class="identifier">heading_action</span><span class="special">]</span>
<span class="special">>></span> <span class="identifier">block</span> <span class="special">[</span><span class="identifier">block_action</span><span class="special">]</span>
<span class="special">>></span> <span class="char">'.'</span>
@@ -85,8 +84,7 @@
separate them from the rules.
</li>
</ul></div>
-<pre class="programlisting">
-<span class="identifier">program_heading</span>
+<pre class="programlisting"><span class="identifier">program_heading</span>
<span class="special">=</span> <span class="identifier">no_case</span><span class="special">[</span><span class="string">"program"</span><span class="special">]</span>
<span class="special">>></span> <span class="identifier">identifier</span>
<span class="special">>></span> <span class="char">'('</span>
@@ -102,8 +100,7 @@
of directives, semantic expressions (using Phoenix or LL lambda expressions)
or parsers should be placed as follows.
</li></ul></div>
-<pre class="programlisting">
-<span class="identifier">identifier</span>
+<pre class="programlisting"><span class="identifier">identifier</span>
<span class="special">=</span> <span class="identifier">no_case</span>
<span class="special">[</span>
<span class="identifier">lexeme</span>
@@ -122,8 +119,7 @@
'body' at the same indentation level as the rule itself, highlighting the
unary operator.
</li></ul></div>
-<pre class="programlisting">
-<span class="identifier">block</span>
+<pre class="programlisting"><span class="identifier">block</span>
<span class="special">=</span> <span class="special">*(</span> <span class="identifier">label_declaration_part</span>
<span class="special">|</span> <span class="identifier">constant_definition_part</span>
<span class="special">|</span> <span class="identifier">type_definition_part</span>
Modified: branches/release/libs/spirit/doc/html/spirit/qi_and_karma.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi_and_karma.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi_and_karma.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -120,7 +120,7 @@
<div class="titlepage"><div><div><h4 class="title">
<a name="spirit.qi_and_karma.tutorials.quick_start"></a>Quick Start</h4></div></div></div>
<a name="spirit.qi_and_karma.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_"></a><h5>
-<a name="id621042"></a>
+<a name="id460252"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_">Why
would you want to use Spirit.Qi?</a>
</h5>
@@ -167,15 +167,14 @@
on how to build parsers from the simplest parser, building up as we go.
</p>
<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__1_parsing_a_number"></a><h5>
-<a name="id621087"></a>
+<a name="id460361"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__1_parsing_a_number">Trivial
Example #1 Parsing a number</a>
</h5>
<p>
Create a parser that will parse a floating-point number.
</p>
-<pre class="programlisting">
-<span class="identifier">double_</span>
+<pre class="programlisting"><span class="identifier">double_</span>
</pre>
<p>
(You've got to admit, that's trivial!) The above code actually generates
@@ -183,7 +182,7 @@
parsers and consistent naming conventions help you keep from going insane!
</p>
<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__2_parsing_two_numbers"></a><h5>
-<a name="id621117"></a>
+<a name="id460416"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__2_parsing_two_numbers">Trivial
Example #2 Parsing two numbers</a>
</h5>
@@ -191,8 +190,7 @@
Create a parser that will accept a line consisting of two floating-point
numbers.
</p>
-<pre class="programlisting">
-<span class="identifier">double_</span> <span class="special">>></span> <span class="identifier">double_</span>
+<pre class="programlisting"><span class="identifier">double_</span> <span class="special">>></span> <span class="identifier">double_</span>
</pre>
<p>
Here you see the familiar floating-point numeric parser <tt class="computeroutput"><span class="identifier">double_</span></tt>
@@ -217,15 +215,14 @@
</p></td></tr>
</table></div>
<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers"></a><h5>
-<a name="id621180"></a>
+<a name="id460526"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers">Trivial
Example #3 Parsing one or more numbers</a>
</h5>
<p>
Create a parser that will accept one or more floating-point numbers.
</p>
-<pre class="programlisting">
-<span class="special">*</span><span class="identifier">double_</span>
+<pre class="programlisting"><span class="special">*</span><span class="identifier">double_</span>
</pre>
<p>
This is like a regular-expression Kleene Star, though the syntax might
@@ -242,7 +239,7 @@
in most places.
</p>
<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers"></a><h5>
-<a name="id621225"></a>
+<a name="id460609"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers">Trivial
Example #4 Parsing a comma-delimited list of numbers</a>
</h5>
@@ -250,8 +247,7 @@
This example will create a parser that accepts a comma-delimited list of
numbers.
</p>
-<pre class="programlisting">
-<span class="identifier">double_</span> <span class="special">>></span> <span class="special">*(</span><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">double_</span> <span class="special">>></span> <span class="special">*(</span><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">)</span>
</pre>
<p>
Notice <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></tt>. It is
@@ -259,15 +255,14 @@
In this case, the Kleene Star is modifying a more complex parser, namely,
the one generated by the expression:
</p>
-<pre class="programlisting">
-<span class="special">(</span><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">)</span>
+<pre class="programlisting"><span class="special">(</span><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">)</span>
</pre>
<p>
Note that this is a case where the parentheses are necessary. The Kleene
star encloses the complete expression above.
</p>
<a name="spirit.qi_and_karma.tutorials.warming_up.let_s_parse_"></a><h5>
-<a name="id621358"></a>
+<a name="id460803"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.let_s_parse_">Let's
Parse!</a>
</h5>
@@ -308,8 +303,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">bool</span> <span class="identifier">parse_numbers</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">)</span>
<span class="special">{</span>
<span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">phrase_parse</span><span class="special">(</span>
@@ -442,8 +436,7 @@
can make the parser call <tt class="computeroutput"><span class="identifier">F</span></tt>
whenever it matches an input by attaching <tt class="computeroutput"><span class="identifier">F</span></tt>:
</p>
-<pre class="programlisting">
-<span class="identifier">P</span><span class="special">[</span><span class="identifier">F</span><span class="special">]</span>
+<pre class="programlisting"><span class="identifier">P</span><span class="special">[</span><span class="identifier">F</span><span class="special">]</span>
</pre>
<p>
The expression above links <tt class="computeroutput"><span class="identifier">F</span></tt>
@@ -456,8 +449,7 @@
we need <tt class="computeroutput"><span class="identifier">F</span></tt> to be declared
as:
</p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">F</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">n</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">F</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">n</span><span class="special">);</span>
</pre>
<p>
There are actually 2 more arguments being passed (the parser context and
@@ -496,8 +488,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="comment">// A plain function
+<pre class="programlisting"><span class="comment">// A plain function
</span><span class="keyword">void</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">i</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">i</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
@@ -536,8 +527,7 @@
<p>
All examples parse inputs of the form:
</p>
-<pre class="programlisting">
-<span class="string">"{integer}"</span>
+<pre class="programlisting"><span class="string">"{integer}"</span>
</pre>
<p>
An integer inside the curly braces.
@@ -550,8 +540,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="char">'{'</span> <span class="special">>></span> <span class="identifier">int_</span><span class="special">[&</span><span class="identifier">write</span><span class="special">]</span> <span class="special">>></span> <span class="char">'}'</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="char">'{'</span> <span class="special">>></span> <span class="identifier">int_</span><span class="special">[&</span><span class="identifier">write</span><span class="special">]</span> <span class="special">>></span> <span class="char">'}'</span><span class="special">);</span>
</pre>
<p>
</p>
@@ -570,8 +559,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="char">'{'</span> <span class="special">>></span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">write_action</span><span class="special">()]</span> <span class="special">>></span> <span class="char">'}'</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="char">'{'</span> <span class="special">>></span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">write_action</span><span class="special">()]</span> <span class="special">>></span> <span class="char">'}'</span><span class="special">);</span>
</pre>
<p>
</p>
@@ -586,8 +574,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="identifier">writer</span> <span class="identifier">w</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">writer</span> <span class="identifier">w</span><span class="special">;</span>
<span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="char">'{'</span> <span class="special">>></span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">writer</span><span class="special">::</span><span class="identifier">print</span><span class="special">,</span> <span class="special">&</span><span class="identifier">w</span><span class="special">,</span> <span class="identifier">_1</span><span class="special">)]</span> <span class="special">>></span> <span class="char">'}'</span><span class="special">);</span>
</pre>
<p>
@@ -603,8 +590,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="char">'{'</span> <span class="special">>></span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">write</span><span class="special">,</span> <span class="identifier">_1</span><span class="special">)]</span> <span class="special">>></span> <span class="char">'}'</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="char">'{'</span> <span class="special">>></span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">write</span><span class="special">,</span> <span class="identifier">_1</span><span class="special">)]</span> <span class="special">>></span> <span class="char">'}'</span><span class="special">);</span>
</pre>
<p>
</p>
@@ -618,8 +604,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="char">'{'</span> <span class="special">>></span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">_1</span> <span class="special"><<</span> <span class="char">'\n'</span><span class="special">]</span> <span class="special">>></span> <span class="char">'}'</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="char">'{'</span> <span class="special">>></span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">_1</span> <span class="special"><<</span> <span class="char">'\n'</span><span class="special">]</span> <span class="special">>></span> <span class="char">'}'</span><span class="special">);</span>
</pre>
<p>
</p>
@@ -637,7 +622,7 @@
The examples above can be found here: ../../example/qi/actions.cpp
</p>
<a name="spirit.qi_and_karma.tutorials.semantic_actions.phoenix"></a><h5>
-<a name="id623150"></a>
+<a name="id463328"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.semantic_actions.phoenix">Phoenix</a>
</h5>
<p>
@@ -663,8 +648,7 @@
<p>
Here's a simple parser expression for complex numbers:
</p>
-<pre class="programlisting">
- <span class="char">'('</span> <span class="special">>></span> <span class="identifier">double_</span> <span class="special">>></span> <span class="special">-(</span><span class="char">','</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">)</span> <span class="special">>></span> <span class="char">')'</span>
+<pre class="programlisting"> <span class="char">'('</span> <span class="special">>></span> <span class="identifier">double_</span> <span class="special">>></span> <span class="special">-(</span><span class="char">','</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">)</span> <span class="special">>></span> <span class="char">')'</span>
<span class="special">|</span> <span class="identifier">double_</span>
</pre>
<p>
@@ -695,8 +679,7 @@
<p>
This parser can parse complex numbers of the form:
</p>
-<pre class="programlisting">
-<span class="special">(</span><span class="number">123.45</span><span class="special">,</span> <span class="number">987.65</span><span class="special">)</span>
+<pre class="programlisting"><span class="special">(</span><span class="number">123.45</span><span class="special">,</span> <span class="number">987.65</span><span class="special">)</span>
<span class="special">(</span><span class="number">123.45</span><span class="special">)</span>
<span class="number">123.45</span>
</pre>
@@ -708,8 +691,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">bool</span> <span class="identifier">parse_complex</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <span class="identifier">c</span><span class="special">)</span>
<span class="special">{</span>
<span class="keyword">double</span> <span class="identifier">rN</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span>
@@ -743,8 +725,7 @@
The <tt class="computeroutput"><span class="identifier">double_</span></tt> parser attaches
this action:
</p>
-<pre class="programlisting">
-<span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span>
+<pre class="programlisting"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span>
</pre>
<p>
This assigns the parsed result (actually, the attribute of <tt class="computeroutput"><span class="identifier">double_</span></tt>) to n. <tt class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></tt>
@@ -770,8 +751,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
@@ -789,8 +769,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">;</span>
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">;</span>
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ascii</span><span class="special">;</span>
@@ -905,8 +884,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">bool</span> <span class="identifier">adder</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&</span> <span class="identifier">n</span><span class="special">)</span>
<span class="special">{</span>
<span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">phrase_parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span>
@@ -943,8 +921,7 @@
The first <tt class="computeroutput"><span class="identifier">double_</span></tt> parser
attaches this action:
</p>
-<pre class="programlisting">
-<span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span>
+<pre class="programlisting"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span>
</pre>
<p>
This assigns the parsed result (actually, the attribute of <tt class="computeroutput"><span class="identifier">double_</span></tt>) to <tt class="computeroutput"><span class="identifier">n</span></tt>.
@@ -956,8 +933,7 @@
The second <tt class="computeroutput"><span class="identifier">double_</span></tt> parser
attaches this action:
</p>
-<pre class="programlisting">
-<span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">_1</span>
+<pre class="programlisting"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">_1</span>
</pre>
<p>
So, subsequent numbers add into <tt class="computeroutput"><span class="identifier">n</span></tt>.
@@ -980,8 +956,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">bool</span> <span class="identifier">parse_numbers</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <span class="identifier">v</span><span class="special">)</span>
<span class="special">{</span>
<span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">phrase_parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span>
@@ -1014,8 +989,7 @@
<tt class="computeroutput"><span class="identifier">push_back</span></tt> is supplied by
<a href="../../../phoenix/doc/html/index.html" target="_top">Phoenix</a>. The expression:
</p>
-<pre class="programlisting">
-<span class="identifier">push_back</span><span class="special">(</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">v</span><span class="special">),</span> <span class="identifier">_1</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">v</span><span class="special">),</span> <span class="identifier">_1</span><span class="special">)</span>
</pre>
<p>
appends the parsed number. Like before, <tt class="computeroutput"><span class="identifier">_1</span></tt>
@@ -1034,16 +1008,14 @@
<p>
So far, we've been using the syntax:
</p>
-<pre class="programlisting">
-<span class="identifier">double_</span> <span class="special">>></span> <span class="special">*(</span><span class="char">','</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">double_</span> <span class="special">>></span> <span class="special">*(</span><span class="char">','</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">)</span>
</pre>
<p>
to parse a comma-delimited list of numbers. Such lists are common in parsing
and Spirit provides a simpler shortcut for them. The expression above can
be simplified to:
</p>
-<pre class="programlisting">
-<span class="identifier">double_</span> <span class="special">%</span> <span class="char">','</span>
+<pre class="programlisting"><span class="identifier">double_</span> <span class="special">%</span> <span class="char">','</span>
</pre>
<p>
read as: a list of doubles separated by <tt class="computeroutput"><span class="char">','</span></tt>.
@@ -1057,8 +1029,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">bool</span> <span class="identifier">parse_numbers</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <span class="identifier">v</span><span class="special">)</span>
<span class="special">{</span>
<span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">phrase_parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span>
@@ -1097,20 +1068,17 @@
from primitives using operators, like the list parser, also have an attribute.
It so happens that the the attribute of a list parser:
</p>
-<pre class="programlisting">
-<span class="identifier">p</span> <span class="special">%</span> <span class="identifier">d</span>
+<pre class="programlisting"><span class="identifier">p</span> <span class="special">%</span> <span class="identifier">d</span>
</pre>
<p>
is a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt> of the attribute of <tt class="computeroutput"><span class="identifier">p</span></tt>. So, for our parser:
</p>
-<pre class="programlisting">
-<span class="identifier">double_</span> <span class="special">%</span> <span class="char">','</span>
+<pre class="programlisting"><span class="identifier">double_</span> <span class="special">%</span> <span class="char">','</span>
</pre>
<p>
we'll have an attribute of:
</p>
-<pre class="programlisting">
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>
</pre>
<p>
So, what does this give us? Well, we can simply pass in a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></tt>
@@ -1143,8 +1111,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">bool</span> <span class="identifier">parse_numbers</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span> <span class="identifier">v</span><span class="special">)</span>
<span class="special">{</span>
<span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">phrase_parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span>
@@ -1195,7 +1162,7 @@
</li>
</ul></div>
<a name="spirit.qi_and_karma.tutorials.roman_numerals.symbol_table"></a><h5>
-<a name="id627428"></a>
+<a name="id467678"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals.symbol_table">Symbol
Table</a>
</h5>
@@ -1236,8 +1203,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">hundreds_</span> <span class="special">:</span> <span class="identifier">symbols</span><span class="special"><</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">hundreds_</span> <span class="special">:</span> <span class="identifier">symbols</span><span class="special"><</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">></span>
<span class="special">{</span>
<span class="identifier">hundreds_</span><span class="special">()</span>
<span class="special">{</span>
@@ -1268,8 +1234,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">tens_</span> <span class="special">:</span> <span class="identifier">symbols</span><span class="special"><</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">tens_</span> <span class="special">:</span> <span class="identifier">symbols</span><span class="special"><</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">></span>
<span class="special">{</span>
<span class="identifier">tens_</span><span class="special">()</span>
<span class="special">{</span>
@@ -1300,8 +1265,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">ones_</span> <span class="special">:</span> <span class="identifier">symbols</span><span class="special"><</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">ones_</span> <span class="special">:</span> <span class="identifier">symbols</span><span class="special"><</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">></span>
<span class="special">{</span>
<span class="identifier">ones_</span><span class="special">()</span>
<span class="special">{</span>
@@ -1330,7 +1294,7 @@
They are all parsers.
</p>
<a name="spirit.qi_and_karma.tutorials.roman_numerals.rules"></a><h5>
-<a name="id628936"></a>
+<a name="id468962"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals.rules">Rules</a>
</h5>
<p>
@@ -1347,8 +1311,7 @@
A parser expression can be assigned to, what is called, a "rule".
There are various ways to declare rules. The simplest form is:
</p>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
</pre>
<p>
At the very least, the rule needs to know the iterator type it will be
@@ -1358,14 +1321,12 @@
the skipper argument). If you want to have it skip white spaces, you need
to pass in the type skip parser, as in the next form:
</p>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Skipper</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Skipper</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
</pre>
<p>
Example:
</p>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
</pre>
<p>
This type of rule can be used for both <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>
@@ -1374,14 +1335,12 @@
<p>
For our next example, there's one more rule form you should know about:
</p>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Signature</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Signature</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
</pre>
<p>
or
</p>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Signature</span><span class="special">,</span> <span class="identifier">Skipper</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Signature</span><span class="special">,</span> <span class="identifier">Skipper</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
</pre>
<div class="tip"><table border="0" summary="Tip">
<tr>
@@ -1406,18 +1365,16 @@
You can think of them as function arguments. And, rightly so, the rule
signature is a function signature of the form:
</p>
-<pre class="programlisting">
-<span class="identifier">result</span><span class="special">(</span><span class="identifier">argN</span><span class="special">,</span> <span class="identifier">argN</span><span class="special">,...,</span> <span class="identifier">argN</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">result</span><span class="special">(</span><span class="identifier">argN</span><span class="special">,</span> <span class="identifier">argN</span><span class="special">,...,</span> <span class="identifier">argN</span><span class="special">)</span>
</pre>
<p>
After having declared a rule, you can now assign any parser expression
to it. Example:
</p>
-<pre class="programlisting">
-<span class="identifier">r</span> <span class="special">=</span> <span class="identifier">double_</span> <span class="special">>></span> <span class="special">*(</span><span class="char">','</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">double_</span> <span class="special">>></span> <span class="special">*(</span><span class="char">','</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">);</span>
</pre>
<a name="spirit.qi_and_karma.tutorials.roman_numerals.grammars"></a><h5>
-<a name="id629337"></a>
+<a name="id469547"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals.grammars">Grammars</a>
</h5>
<p>
@@ -1448,8 +1405,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">roman</span> <span class="special">:</span> <span class="identifier">grammar</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">()></span>
<span class="special">{</span>
<span class="identifier">roman</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">roman</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">start</span><span class="special">)</span>
@@ -1517,7 +1473,7 @@
</li>
</ul></div>
<a name="spirit.qi_and_karma.tutorials.roman_numerals.let_s_parse_"></a><h5>
-<a name="id629952"></a>
+<a name="id470410"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals.let_s_parse_">Let's
Parse!</a>
</h5>
@@ -1526,8 +1482,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">parse</span><span class="special">(</span><span class="identifier">iter</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">roman_parser</span><span class="special">,</span> <span class="identifier">result</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">parse</span><span class="special">(</span><span class="identifier">iter</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">roman_parser</span><span class="special">,</span> <span class="identifier">result</span><span class="special">);</span>
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">r</span> <span class="special">&&</span> <span class="identifier">iter</span> <span class="special">==</span> <span class="identifier">end</span><span class="special">)</span>
<span class="special">{</span>
@@ -1597,8 +1552,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">employee</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="keyword">int</span> <span class="identifier">age</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">surname</span><span class="special">;</span>
@@ -1626,8 +1580,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="identifier">BOOST_FUSION_ADAPT_STRUCT</span><span class="special">(</span>
+<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_STRUCT</span><span class="special">(</span>
<span class="identifier">employee</span><span class="special">,</span>
<span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">age</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">surname</span><span class="special">)</span>
@@ -1642,8 +1595,7 @@
<p>
Now we'll write a parser for our employee. Inputs will be of the form:
</p>
-<pre class="programlisting">
-<span class="identifier">employee</span><span class="special">{</span> <span class="identifier">age</span><span class="special">,</span> <span class="string">"surname"</span><span class="special">,</span> <span class="string">"forename"</span><span class="special">,</span> <span class="identifier">salary</span> <span class="special">}</span>
+<pre class="programlisting"><span class="identifier">employee</span><span class="special">{</span> <span class="identifier">age</span><span class="special">,</span> <span class="string">"surname"</span><span class="special">,</span> <span class="string">"forename"</span><span class="special">,</span> <span class="identifier">salary</span> <span class="special">}</span>
</pre>
<p>
Here goes:
@@ -1653,8 +1605,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">employee_parser</span> <span class="special">:</span> <span class="identifier">grammar</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">employee</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span>
<span class="special">{</span>
<span class="identifier">employee_parser</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">employee_parser</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">start</span><span class="special">)</span>
@@ -1687,8 +1638,7 @@
Let's walk through this one step at a time (not necessarily from top to
bottom).
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">employee_parser</span> <span class="special">:</span> <span class="identifier">grammar</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">employee</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span>
</pre>
<p>
@@ -1696,22 +1646,19 @@
Like before, we make it a template so that we can reuse it for different
iterator types. The grammar's signature is:
</p>
-<pre class="programlisting">
-<span class="identifier">employee</span><span class="special">()</span>
+<pre class="programlisting"><span class="identifier">employee</span><span class="special">()</span>
</pre>
<p>
meaning, the parser generates employee structs. <tt class="computeroutput"><span class="identifier">employee_parser</span></tt>
skips white spaces using <tt class="computeroutput"><span class="identifier">space_type</span></tt>
as its skip parser.
</p>
-<pre class="programlisting">
-<span class="identifier">employee_parser</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">employee_parser</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">start</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">employee_parser</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">employee_parser</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">start</span><span class="special">)</span>
</pre>
<p>
Initializes the base class.
</p>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">quoted_string</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">quoted_string</span><span class="special">;</span>
<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">employee</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">start</span><span class="special">;</span>
</pre>
<p>
@@ -1721,51 +1668,46 @@
has a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt> attribute.
</p>
<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.lexeme"></a><h5>
-<a name="id632030"></a>
+<a name="id472484"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.lexeme">Lexeme</a>
</h5>
-<pre class="programlisting">
-<span class="identifier">lexeme</span><span class="special">[</span><span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span><span class="special">];</span>
+<pre class="programlisting"><span class="identifier">lexeme</span><span class="special">[</span><span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span><span class="special">];</span>
</pre>
<p>
<tt class="computeroutput"><span class="identifier">lexeme</span></tt> inhibits space skipping
from the open brace to the closing brace. The expression parses quoted
strings.
</p>
-<pre class="programlisting">
-<span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span>
+<pre class="programlisting"><span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span>
</pre>
<p>
parses one or more chars, except the double quote. It stops when it sees
a double quote.
</p>
<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.difference"></a><h5>
-<a name="id632141"></a>
+<a name="id472645"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.difference">Difference</a>
</h5>
<p>
The expression:
</p>
-<pre class="programlisting">
-<span class="identifier">a</span> <span class="special">-</span> <span class="identifier">b</span>
+<pre class="programlisting"><span class="identifier">a</span> <span class="special">-</span> <span class="identifier">b</span>
</pre>
<p>
parses <tt class="computeroutput"><span class="identifier">a</span></tt> but not <tt class="computeroutput"><span class="identifier">b</span></tt>. Its attribute is just <tt class="computeroutput"><span class="identifier">A</span></tt>, the attribute of <tt class="computeroutput"><span class="identifier">a</span></tt>.
<tt class="computeroutput"><span class="identifier">b</span></tt>'s attribute is ignored.
Hence, the attribute of:
</p>
-<pre class="programlisting">
-<span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span>
+<pre class="programlisting"><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span>
</pre>
<p>
is just <tt class="computeroutput"><span class="keyword">char</span></tt>.
</p>
<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.plus"></a><h5>
-<a name="id632246"></a>
+<a name="id472806"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.plus">Plus</a>
</h5>
-<pre class="programlisting">
-<span class="special">+</span><span class="identifier">a</span>
+<pre class="programlisting"><span class="special">+</span><span class="identifier">a</span>
</pre>
<p>
is the close kin of the kleene star we got so used to in our tutorial.
@@ -1773,25 +1715,22 @@
is the attribute of <tt class="computeroutput"><span class="identifier">a</span></tt>.
So, putting all these together, the attribute of
</p>
-<pre class="programlisting">
-<span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span>
+<pre class="programlisting"><span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span>
</pre>
<p>
is then:
</p>
-<pre class="programlisting">
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span>
</pre>
<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.sequence_attribute"></a><h5>
-<a name="id632373"></a>
+<a name="id472994"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.sequence_attribute">Sequence
Attribute</a>
</h5>
<p>
Now what's the attribute of
</p>
-<pre class="programlisting">
-<span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span>
+<pre class="programlisting"><span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span>
</pre>
<p>
?
@@ -1799,14 +1738,12 @@
<p>
Well, typically, the attribute of:
</p>
-<pre class="programlisting">
-<span class="identifier">a</span> <span class="special">>></span> <span class="identifier">b</span> <span class="special">>></span> <span class="identifier">c</span>
+<pre class="programlisting"><span class="identifier">a</span> <span class="special">>></span> <span class="identifier">b</span> <span class="special">>></span> <span class="identifier">c</span>
</pre>
<p>
is:
</p>
-<pre class="programlisting">
-<span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</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>
+<pre class="programlisting"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</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>
</pre>
<p>
where <tt class="computeroutput"><span class="identifier">A</span></tt> is the attribute
@@ -1827,7 +1764,7 @@
</p></td></tr>
</table></div>
<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.attribute_collapsing"></a><h5>
-<a name="id632599"></a>
+<a name="id473317"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.attribute_collapsing">Attribute
Collapsing</a>
</h5>
@@ -1843,8 +1780,7 @@
<span class="special">-</span> <span class="char">'"'</span><span class="special">)</span></tt> has a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span></tt> attribute, the whole expression's attribute
should have been:
</p>
-<pre class="programlisting">
-<span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span> <span class="special">></span>
+<pre class="programlisting"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span> <span class="special">></span>
</pre>
<p>
But wait, there's one more collapsing rule: If after the attribute is a
@@ -1852,33 +1788,29 @@
from its container. So, to make a long story short, the attribute of the
expression:
</p>
-<pre class="programlisting">
-<span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span>
+<pre class="programlisting"><span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span>
</pre>
<p>
is:
</p>
-<pre class="programlisting">
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span>
</pre>
<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.auto_rules"></a><h5>
-<a name="id632839"></a>
+<a name="id473668"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.auto_rules">Auto
Rules</a>
</h5>
<p>
It is typical to see rules like:
</p>
-<pre class="programlisting">
-<span class="identifier">r</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">[</span><span class="identifier">_val</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">];</span>
+<pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">[</span><span class="identifier">_val</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">];</span>
</pre>
<p>
If you have a rule definition like above where the attribute of the RHS
(right hand side) of the rule is compatibe with the attribute of the LHS
(left hand side), then you can rewrite it as:
</p>
-<pre class="programlisting">
-<span class="identifier">r</span> <span class="special">%=</span> <span class="identifier">p</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">r</span> <span class="special">%=</span> <span class="identifier">p</span><span class="special">;</span>
</pre>
<p>
The attribute of <tt class="computeroutput"><span class="identifier">p</span></tt> automatically
@@ -1888,14 +1820,12 @@
So, going back to our <tt class="computeroutput"><span class="identifier">quoted_string</span></tt>
rule:
</p>
-<pre class="programlisting">
-<span class="identifier">quoted_string</span> <span class="special">%=</span> <span class="identifier">lexeme</span><span class="special">[</span><span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span><span class="special">];</span>
+<pre class="programlisting"><span class="identifier">quoted_string</span> <span class="special">%=</span> <span class="identifier">lexeme</span><span class="special">[</span><span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span><span class="special">];</span>
</pre>
<p>
is a simplified version of:
</p>
-<pre class="programlisting">
-<span class="identifier">quoted_string</span> <span class="special">=</span> <span class="identifier">lexeme</span><span class="special">[</span><span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span><span class="special">][</span><span class="identifier">val_</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">];</span>
+<pre class="programlisting"><span class="identifier">quoted_string</span> <span class="special">=</span> <span class="identifier">lexeme</span><span class="special">[</span><span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span><span class="special">][</span><span class="identifier">val_</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">];</span>
</pre>
<p>
The attribute of the <tt class="computeroutput"><span class="identifier">quoted_string</span></tt>
@@ -1904,14 +1834,13 @@
directly into the rule's attribute, in-situ.
</p>
<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.finally"></a><h5>
-<a name="id634319"></a>
+<a name="id474119"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.finally">Finally</a>
</h5>
<p>
We're down to one rule, the start rule:
</p>
-<pre class="programlisting">
-<span class="identifier">start</span> <span class="special">%=</span>
+<pre class="programlisting"><span class="identifier">start</span> <span class="special">%=</span>
<span class="identifier">lit</span><span class="special">(</span><span class="string">"employee"</span><span class="special">)</span>
<span class="special">>></span> <span class="char">'{'</span>
<span class="special">>></span> <span class="identifier">int_</span> <span class="special">>></span> <span class="char">','</span>
@@ -1924,8 +1853,7 @@
<p>
Applying our collapsing rules above, the RHS has an attribute of:
</p>
-<pre class="programlisting">
-<span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span>
+<pre class="programlisting"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span>
</pre>
<p>
These nodes do not have an attribute:
@@ -1958,8 +1886,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">employee</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="keyword">int</span> <span class="identifier">age</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">surname</span><span class="special">;</span>
@@ -2028,7 +1955,7 @@
for testing purposes. "4.toyxml" has an error in it.
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.first_cut"></a><h5>
-<a name="id634972"></a>
+<a name="id475029"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.first_cut">First
Cut</a>
</h5>
@@ -2040,8 +1967,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">mini_xml_grammar</span> <span class="special">:</span> <span class="identifier">grammar</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span>
<span class="special">{</span>
<span class="identifier">mini_xml_grammar</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">mini_xml_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">xml</span><span class="special">)</span>
@@ -2084,14 +2010,12 @@
Going bottom up, let's examine the <tt class="computeroutput"><span class="identifier">text</span></tt>
rule:
</p>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">text</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">text</span><span class="special">;</span>
</pre>
<p>
and its definition:
</p>
-<pre class="programlisting">
-<span class="identifier">text</span> <span class="special">=</span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'<'</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">+=</span> <span class="identifier">_1</span><span class="special">]];</span>
+<pre class="programlisting"><span class="identifier">text</span> <span class="special">=</span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'<'</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">+=</span> <span class="identifier">_1</span><span class="special">]];</span>
</pre>
<p>
The semantic action collects the chars and appends them (via +=) to the
@@ -2099,17 +2023,15 @@
by the placeholder <tt class="computeroutput"><span class="identifier">_val</span></tt>).
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.alternates"></a><h5>
-<a name="id635930"></a>
+<a name="id476318"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.alternates">Alternates</a>
</h5>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml_node</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">node</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml_node</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">node</span><span class="special">;</span>
</pre>
<p>
and its definition:
</p>
-<pre class="programlisting">
-<span class="identifier">node</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">xml</span> <span class="special">|</span> <span class="identifier">text</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">];</span>
+<pre class="programlisting"><span class="identifier">node</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">xml</span> <span class="special">|</span> <span class="identifier">text</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">];</span>
</pre>
<p>
We'll see what a <tt class="computeroutput"><span class="identifier">mini_xml_node</span></tt>
@@ -2117,15 +2039,13 @@
goiing on here. An xml <tt class="computeroutput"><span class="identifier">node</span></tt>
is either an <tt class="computeroutput"><span class="identifier">xml</span></tt> OR <tt class="computeroutput"><span class="identifier">text</span></tt>. Hmmm... hold on to that thought...
</p>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">start_tag</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">start_tag</span><span class="special">;</span>
</pre>
<p>
Again, with an attribute of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>.
Then, it's definition:
</p>
-<pre class="programlisting">
-<span class="identifier">start_tag</span> <span class="special">=</span>
+<pre class="programlisting"><span class="identifier">start_tag</span> <span class="special">=</span>
<span class="char">'<'</span>
<span class="special">>></span> <span class="special">!</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'/'</span><span class="special">)</span>
<span class="special">>></span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'>'</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">+=</span> <span class="identifier">_1</span><span class="special">]]</span>
@@ -2133,7 +2053,7 @@
<span class="special">;</span>
</pre>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.not_predicate"></a><h5>
-<a name="id636269"></a>
+<a name="id476781"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.not_predicate">Not
Predicate</a>
</h5>
@@ -2143,8 +2063,7 @@
the added <tt class="computeroutput"><span class="char">'<'</span></tt> and <tt class="computeroutput"><span class="char">'>'</span></tt>. But wait, to make sure that the <tt class="computeroutput"><span class="identifier">start_tag</span></tt> does not parse <tt class="computeroutput"><span class="identifier">end_tag</span></tt>s too, we add: <tt class="computeroutput"><span class="special">!</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'/'</span><span class="special">)</span></tt>. This
is a "Not Predicate":
</p>
-<pre class="programlisting">
-<span class="special">!</span><span class="identifier">p</span>
+<pre class="programlisting"><span class="special">!</span><span class="identifier">p</span>
</pre>
<p>
It will try the parser, <tt class="computeroutput"><span class="identifier">p</span></tt>.
@@ -2154,31 +2073,28 @@
any input though. It will always rewind the iterator position to where
it was upon entry. So, the expression:
</p>
-<pre class="programlisting">
-<span class="special">!</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'/'</span><span class="special">)</span>
+<pre class="programlisting"><span class="special">!</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'/'</span><span class="special">)</span>
</pre>
<p>
basically says: we should not have a <tt class="computeroutput"><span class="char">'/'</span></tt>
at this point.
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.inherited_attribute"></a><h5>
-<a name="id637111"></a>
+<a name="id477026"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.inherited_attribute">Inherited
Attribute</a>
</h5>
<p>
The <tt class="computeroutput"><span class="identifier">end_tag</span></tt>:
</p>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">void</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">end_tag</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">void</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">end_tag</span><span class="special">;</span>
</pre>
<p>
Ohh! Now we see an inherited attribute there: <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>.
The <tt class="computeroutput"><span class="identifier">end_tag</span></tt> does not have
a synthesized attribute. Let's see its definition:
</p>
-<pre class="programlisting">
-<span class="identifier">end_tag</span> <span class="special">=</span>
+<pre class="programlisting"><span class="identifier">end_tag</span> <span class="special">=</span>
<span class="string">"</"</span>
<span class="special">>></span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">_r1</span><span class="special">)</span>
<span class="special">>></span> <span class="char">'>'</span>
@@ -2190,7 +2106,7 @@
<tt class="computeroutput"><span class="identifier">_r3</span></tt>, etc. if you have more).
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.a_lazy_lit"></a><h5>
-<a name="id637309"></a>
+<a name="id477308"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.a_lazy_lit">A
Lazy Lit</a>
</h5>
@@ -2203,15 +2119,13 @@
<p>
Finally, our <tt class="computeroutput"><span class="identifier">xml</span></tt> rule:
</p>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">xml</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">xml</span><span class="special">;</span>
</pre>
<p>
<tt class="computeroutput"><span class="identifier">mini_xml</span></tt> is our attribute
here. We'll see later what it is. Let's see its definition:
</p>
-<pre class="programlisting">
-<span class="identifier">xml</span> <span class="special">=</span>
+<pre class="programlisting"><span class="identifier">xml</span> <span class="special">=</span>
<span class="identifier">start_tag</span> <span class="special">[</span><span class="identifier">at_c</span><span class="special"><</span><span class="number">0</span><span class="special">>(</span><span class="identifier">_val</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">]</span>
<span class="special">>></span> <span class="special">*</span><span class="identifier">node</span> <span class="special">[</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">at_c</span><span class="special"><</span><span class="number">1</span><span class="special">>(</span><span class="identifier">_val</span><span class="special">),</span> <span class="identifier">_1</span><span class="special">)]</span>
<span class="special">>></span> <span class="identifier">end_tag</span><span class="special">(</span><span class="identifier">at_c</span><span class="special"><</span><span class="number">0</span><span class="special">>(</span><span class="identifier">_val</span><span class="special">))</span>
@@ -2226,7 +2140,7 @@
accessors, provided by Phoenix.
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.how_it_all_works"></a><h5>
-<a name="id637650"></a>
+<a name="id477789"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.how_it_all_works">How
it all works</a>
</h5>
@@ -2256,14 +2170,12 @@
<p>
To give the last item some more light, what happens is this:
</p>
-<pre class="programlisting">
-<span class="identifier">end_tag</span><span class="special">(</span><span class="identifier">at_c</span><span class="special"><</span><span class="number">0</span><span class="special">>(</span><span class="identifier">_val</span><span class="special">))</span>
+<pre class="programlisting"><span class="identifier">end_tag</span><span class="special">(</span><span class="identifier">at_c</span><span class="special"><</span><span class="number">0</span><span class="special">>(</span><span class="identifier">_val</span><span class="special">))</span>
</pre>
<p>
calls:
</p>
-<pre class="programlisting">
-<span class="identifier">end_tag</span> <span class="special">=</span>
+<pre class="programlisting"><span class="identifier">end_tag</span> <span class="special">=</span>
<span class="string">"</"</span>
<span class="special">>></span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">_r1</span><span class="special">)</span>
<span class="special">>></span> <span class="char">'>'</span>
@@ -2275,7 +2187,7 @@
as <tt class="computeroutput"><span class="identifier">_r1</span></tt>.
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.the_structures"></a><h5>
-<a name="id637956"></a>
+<a name="id478235"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.the_structures">The
Structures</a>
</h5>
@@ -2288,8 +2200,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">mini_xml</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">mini_xml</span><span class="special">;</span>
<span class="keyword">typedef</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special"><</span>
@@ -2309,7 +2220,7 @@
<p>
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.of_alternates_and_variants"></a><h5>
-<a name="id638154"></a>
+<a name="id478508"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.of_alternates_and_variants">Of
Alternates and Variants</a>
</h5>
@@ -2324,21 +2235,19 @@
<p>
Yep, you got that right: the attribute of an alternate:
</p>
-<pre class="programlisting">
-<span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span>
+<pre class="programlisting"><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span>
</pre>
<p>
is a
</p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
</pre>
<p>
where <tt class="computeroutput"><span class="identifier">A</span></tt> is the attribute
of <tt class="computeroutput"><span class="identifier">a</span></tt> and <tt class="computeroutput"><span class="identifier">B</span></tt> is the attribute of <tt class="computeroutput"><span class="identifier">b</span></tt>.
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.adapting_structs_again"></a><h5>
-<a name="id638331"></a>
+<a name="id478778"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.adapting_structs_again">Adapting
structs again</a>
</h5>
@@ -2353,8 +2262,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="identifier">BOOST_FUSION_ADAPT_STRUCT</span><span class="special">(</span>
+<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_STRUCT</span><span class="special">(</span>
<span class="identifier">mini_xml</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">mini_xml_node</span><span class="special">>,</span> <span class="identifier">children</span><span class="special">)</span>
@@ -2365,7 +2273,7 @@
<p>
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.one_more_take"></a><h5>
-<a name="id638460"></a>
+<a name="id478959"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.one_more_take">One
More Take</a>
</h5>
@@ -2379,8 +2287,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">mini_xml_grammar</span>
<span class="special">:</span> <span class="identifier">grammar</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>,</span> <span class="identifier">space_type</span><span class="special">></span>
<span class="special">{</span>
@@ -2429,12 +2336,11 @@
in the <tt class="computeroutput"><span class="identifier">xml</span></tt> rule:
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.local_variables"></a><h5>
-<a name="id639176"></a>
+<a name="id479925"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.local_variables">Local
Variables</a>
</h5>
-<pre class="programlisting">
-<span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>,</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">xml</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>,</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">xml</span><span class="special">;</span>
</pre>
<p>
Wow, we have four template parameters now. What's that <tt class="computeroutput"><span class="identifier">locals</span></tt>
@@ -2442,8 +2348,7 @@
will have one local variable: a <tt class="computeroutput"><span class="identifier">string</span></tt>.
Let's see how this is used in action:
</p>
-<pre class="programlisting">
-<span class="identifier">xml</span> <span class="special">%=</span>
+<pre class="programlisting"><span class="identifier">xml</span> <span class="special">%=</span>
<span class="identifier">start_tag</span><span class="special">[</span><span class="identifier">_a</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">]</span>
<span class="special">>></span> <span class="special">*</span><span class="identifier">node</span>
<span class="special">>></span> <span class="identifier">end_tag</span><span class="special">(</span><span class="identifier">_a</span><span class="special">)</span>
@@ -2494,8 +2399,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">mini_xml_grammar</span>
<span class="special">:</span> <span class="identifier">grammar</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>,</span> <span class="identifier">space_type</span><span class="special">></span>
<span class="special">{</span>
@@ -2558,28 +2462,26 @@
What's new?
</p>
<a name="spirit.qi_and_karma.tutorials.mini_xml___error_handling.readable_names"></a><h5>
-<a name="id641568"></a>
+<a name="id481710"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling.readable_names">Readable
Names</a>
</h5>
<p>
First, when we call the base class, we give the grammar a name:
</p>
-<pre class="programlisting">
-<span class="special">:</span> <span class="identifier">mini_xml_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">xml</span><span class="special">,</span> <span class="string">"xml"</span><span class="special">)</span>
+<pre class="programlisting"><span class="special">:</span> <span class="identifier">mini_xml_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">xml</span><span class="special">,</span> <span class="string">"xml"</span><span class="special">)</span>
</pre>
<p>
Then, we name all our rules:
</p>
-<pre class="programlisting">
-<span class="identifier">xml</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"xml"</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">xml</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"xml"</span><span class="special">);</span>
<span class="identifier">node</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"node"</span><span class="special">);</span>
<span class="identifier">text</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"text"</span><span class="special">);</span>
<span class="identifier">start_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"start_tag"</span><span class="special">);</span>
<span class="identifier">end_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"end_tag"</span><span class="special">);</span>
</pre>
<a name="spirit.qi_and_karma.tutorials.mini_xml___error_handling.on_error"></a><h5>
-<a name="id641748"></a>
+<a name="id481964"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling.on_error">On
Error</a>
</h5>
@@ -2587,15 +2489,13 @@
<tt class="computeroutput"><span class="identifier">on_error</span></tt> declares our error
handler:
</p>
-<pre class="programlisting">
-<span class="identifier">on_error</span><span class="special"><</span><span class="identifier">Action</span><span class="special">>(</span><span class="identifier">rule</span><span class="special">,</span> <span class="identifier">handler</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">on_error</span><span class="special"><</span><span class="identifier">Action</span><span class="special">>(</span><span class="identifier">rule</span><span class="special">,</span> <span class="identifier">handler</span><span class="special">)</span>
</pre>
<p>
This will specify what we will do when we get an error. We will print out
an error message using phoenix:
</p>
-<pre class="programlisting">
-<span class="identifier">on_error</span><span class="special"><</span><span class="identifier">fail</span><span class="special">></span>
+<pre class="programlisting"><span class="identifier">on_error</span><span class="special"><</span><span class="identifier">fail</span><span class="special">></span>
<span class="special">(</span>
<span class="identifier">xml</span>
<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span>
@@ -2759,7 +2659,7 @@
</tbody>
</table></div>
<a name="spirit.qi_and_karma.tutorials.mini_xml___error_handling.expectation_points"></a><h5>
-<a name="id642260"></a>
+<a name="id482635"></a>
<a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling.expectation_points">Expectation
Points</a>
</h5>
@@ -2767,8 +2667,7 @@
You might not have noticed it, but some of our expressions changed from
using the <tt class="computeroutput"><span class="special">>></span></tt> to <tt class="computeroutput"><span class="special">></span></tt>. Look, for example:
</p>
-<pre class="programlisting">
-<span class="identifier">end_tag</span> <span class="special">=</span>
+<pre class="programlisting"><span class="identifier">end_tag</span> <span class="special">=</span>
<span class="string">"</"</span>
<span class="special">></span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">_r1</span><span class="special">)</span>
<span class="special">></span> <span class="char">'>'</span>
@@ -2791,14 +2690,12 @@
You can find some examples in: ../../example/qi/mini_xml_samples
for testing purposes. "4.toyxml" has an error in it:
</p>
-<pre class="programlisting">
-<span class="special"><</span><span class="identifier">foo</span><span class="special">><</span><span class="identifier">bar</span><span class="special">></</span><span class="identifier">foo</span><span class="special">></</span><span class="identifier">bar</span><span class="special">></span>
+<pre class="programlisting"><span class="special"><</span><span class="identifier">foo</span><span class="special">><</span><span class="identifier">bar</span><span class="special">></</span><span class="identifier">foo</span><span class="special">></</span><span class="identifier">bar</span><span class="special">></span>
</pre>
<p>
Running the example with this gives you:
</p>
-<pre class="programlisting">
-<span class="identifier">Error</span><span class="special">!</span> <span class="identifier">Expecting</span> <span class="string">"bar"</span> <span class="identifier">here</span><span class="special">:</span> <span class="string">"foo></bar>"</span>
+<pre class="programlisting"><span class="identifier">Error</span><span class="special">!</span> <span class="identifier">Expecting</span> <span class="string">"bar"</span> <span class="identifier">here</span><span class="special">:</span> <span class="string">"foo></bar>"</span>
<span class="identifier">Error</span><span class="special">!</span> <span class="identifier">Expecting</span> <span class="identifier">end_tag</span> <span class="identifier">here</span><span class="special">:</span> <span class="string">"<bar></foo></bar>"</span>
<span class="special">-------------------------</span>
<span class="identifier">Parsing</span> <span class="identifier">failed</span>
Modified: branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/mini_xml___error_handling.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/mini_xml___error_handling.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/mini_xml___error_handling.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -47,8 +47,7 @@
<p>
</p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">mini_xml_grammar</span>
<span class="special">:</span> <span class="identifier">grammar</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>,</span> <span class="identifier">space_type</span><span class="special">></span>
<span class="special">{</span>
@@ -111,28 +110,26 @@
What's new?
</p>
<a name="spirit.qi_and_karma.abstracts.mini_xml___error_handling.readable_names"></a><h5>
-<a name="id644389"></a>
+<a name="id484998"></a>
<a href="mini_xml___error_handling.html#spirit.qi_and_karma.abstracts.mini_xml___error_handling.readable_names">Readable
Names</a>
</h5>
<p>
First, when we call the base class, we give the grammar a name:
</p>
-<pre class="programlisting">
-<span class="special">:</span> <span class="identifier">mini_xml_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">xml</span><span class="special">,</span> <span class="string">"xml"</span><span class="special">)</span>
+<pre class="programlisting"><span class="special">:</span> <span class="identifier">mini_xml_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">xml</span><span class="special">,</span> <span class="string">"xml"</span><span class="special">)</span>
</pre>
<p>
Then, we name all our rules:
</p>
-<pre class="programlisting">
-<span class="identifier">xml</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"xml"</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">xml</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"xml"</span><span class="special">);</span>
<span class="identifier">node</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"node"</span><span class="special">);</span>
<span class="identifier">text</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"text"</span><span class="special">);</span>
<span class="identifier">start_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"start_tag"</span><span class="special">);</span>
<span class="identifier">end_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"end_tag"</span><span class="special">);</span>
</pre>
<a name="spirit.qi_and_karma.abstracts.mini_xml___error_handling.on_error"></a><h5>
-<a name="id644569"></a>
+<a name="id485249"></a>
<a href="mini_xml___error_handling.html#spirit.qi_and_karma.abstracts.mini_xml___error_handling.on_error">On
Error</a>
</h5>
@@ -140,15 +137,13 @@
<tt class="computeroutput"><span class="identifier">on_error</span></tt> declares our error
handler:
</p>
-<pre class="programlisting">
-<span class="identifier">on_error</span><span class="special"><</span><span class="identifier">Action</span><span class="special">>(</span><span class="identifier">rule</span><span class="special">,</span> <span class="identifier">handler</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">on_error</span><span class="special"><</span><span class="identifier">Action</span><span class="special">>(</span><span class="identifier">rule</span><span class="special">,</span> <span class="identifier">handler</span><span class="special">)</span>
</pre>
<p>
This will specify what we will do when we get an error. We will print out
an error message using phoenix:
</p>
-<pre class="programlisting">
-<span class="identifier">on_error</span><span class="special"><</span><span class="identifier">fail</span><span class="special">></span>
+<pre class="programlisting"><span class="identifier">on_error</span><span class="special"><</span><span class="identifier">fail</span><span class="special">></span>
<span class="special">(</span>
<span class="identifier">xml</span>
<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span>
@@ -312,7 +307,7 @@
</tbody>
</table></div>
<a name="spirit.qi_and_karma.abstracts.mini_xml___error_handling.expectation_points"></a><h5>
-<a name="id645080"></a>
+<a name="id485914"></a>
<a href="mini_xml___error_handling.html#spirit.qi_and_karma.abstracts.mini_xml___error_handling.expectation_points">Expectation
Points</a>
</h5>
@@ -320,8 +315,7 @@
You might not have noticed it, but some of our expressions changed from
using the <tt class="computeroutput"><span class="special">>></span></tt> to <tt class="computeroutput"><span class="special">></span></tt>. Look, for example:
</p>
-<pre class="programlisting">
-<span class="identifier">end_tag</span> <span class="special">=</span>
+<pre class="programlisting"><span class="identifier">end_tag</span> <span class="special">=</span>
<span class="string">"</"</span>
<span class="special">></span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">_r1</span><span class="special">)</span>
<span class="special">></span> <span class="char">'>'</span>
@@ -344,14 +338,12 @@
You can find some examples in: ../../example/qi/mini_xml_samples
for testing purposes. "4.toyxml" has an error in it:
</p>
-<pre class="programlisting">
-<span class="special"><</span><span class="identifier">foo</span><span class="special">><</span><span class="identifier">bar</span><span class="special">></</span><span class="identifier">foo</span><span class="special">></</span><span class="identifier">bar</span><span class="special">></span>
+<pre class="programlisting"><span class="special"><</span><span class="identifier">foo</span><span class="special">><</span><span class="identifier">bar</span><span class="special">></</span><span class="identifier">foo</span><span class="special">></</span><span class="identifier">bar</span><span class="special">></span>
</pre>
<p>
Running the example with this gives you:
</p>
-<pre class="programlisting">
-<span class="identifier">Error</span><span class="special">!</span> <span class="identifier">Expecting</span> <span class="string">"bar"</span> <span class="identifier">here</span><span class="special">:</span> <span class="string">"foo></bar>"</span>
+<pre class="programlisting"><span class="identifier">Error</span><span class="special">!</span> <span class="identifier">Expecting</span> <span class="string">"bar"</span> <span class="identifier">here</span><span class="special">:</span> <span class="string">"foo></bar>"</span>
<span class="identifier">Error</span><span class="special">!</span> <span class="identifier">Expecting</span> <span class="identifier">end_tag</span> <span class="identifier">here</span><span class="special">:</span> <span class="string">"<bar></foo></bar>"</span>
<span class="special">-------------------------</span>
<span class="identifier">Parsing</span> <span class="identifier">failed</span>
Modified: branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -56,27 +56,27 @@
main reason for Spirit's extensibility.
</p>
<a name="spirit.qi_and_karma.abstracts.parsing.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__"></a><h5>
-<a name="id643120"></a>
+<a name="id483114"></a>
<a href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__">The
API functions exposed by <span class="emphasis"><em>Spirit.Qi</em></span> </a>
</h5>
<a name="spirit.qi_and_karma.abstracts.parsing.the_parse___function"></a><h5>
-<a name="id643140"></a>
+<a name="id483146"></a>
<a href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_parse___function">The
parse() function</a>
</h5>
<a name="spirit.qi_and_karma.abstracts.parsing.the_phrase_parse___function"></a><h5>
-<a name="id643157"></a>
+<a name="id483175"></a>
<a href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_phrase_parse___function">The
phrase_parse() function</a>
</h5>
<a name="spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_parse___function"></a><h5>
-<a name="id643170"></a>
+<a name="id483202"></a>
<a href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_parse___function">The
tokenize_and_parse() function</a>
</h5>
<a name="spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_phrase_parse___function"></a><h5>
-<a name="id643183"></a>
+<a name="id483232"></a>
<a href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_phrase_parse___function">The
tokenize_and_phrase_parse() function</a>
</h5>
Modified: branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing_and_generating.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing_and_generating.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing_and_generating.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -29,27 +29,27 @@
and Generating">Parsing
and Generating</a></h4></div></div></div>
<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__"></a><h5>
-<a name="id643207"></a>
+<a name="id483289"></a>
<a href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__">The
API functions exposed by <span class="emphasis"><em>Spirit.Qi</em></span> </a>
</h5>
<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_parse___function"></a><h5>
-<a name="id643224"></a>
+<a name="id483324"></a>
<a href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_parse___function">The
parse() function</a>
</h5>
<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_phrase_parse___function"></a><h5>
-<a name="id643237"></a>
+<a name="id483355"></a>
<a href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_phrase_parse___function">The
phrase_parse() function</a>
</h5>
<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_parse___function"></a><h5>
-<a name="id643250"></a>
+<a name="id483384"></a>
<a href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_parse___function">The
tokenize_and_parse() function</a>
</h5>
<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_phrase_parse___function"></a><h5>
-<a name="id643264"></a>
+<a name="id483415"></a>
<a href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_phrase_parse___function">The
tokenize_and_phrase_parse() function</a>
</h5>
Modified: branches/release/libs/spirit/doc/html/spirit/qi_and_karma/quick_reference.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi_and_karma/quick_reference.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi_and_karma/quick_reference.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -46,7 +46,7 @@
</dl>
</div>
<div class="table">
-<a name="id647160"></a><p class="title"><b>Table 4. Character Parsers</b></p>
+<a name="id486409"></a><p class="title"><b>Table 4. Character Parsers</b></p>
<table class="table" summary="Character Parsers">
<colgroup>
<col>
Modified: branches/release/libs/spirit/doc/html/spirit/qi_and_karma/reference.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/qi_and_karma/reference.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/qi_and_karma/reference.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -50,7 +50,7 @@
<div class="titlepage"><div><div><h5 class="title">
<a name="spirit.qi_and_karma.reference.concepts.parser"></a>Parser</h5></div></div></div>
<a name="spirit.qi_and_karma.reference.concepts.parser.description"></a><h6>
-<a name="id647891"></a>
+<a name="id487325"></a>
<a href="reference.html#spirit.qi_and_karma.reference.concepts.parser.description">Description</a>
</h6>
<p>
@@ -66,7 +66,7 @@
</dl>
</div>
<a name="spirit.qi_and_karma.reference.concepts.parser.valid_expressions"></a><h6>
-<a name="id647940"></a>
+<a name="id487386"></a>
<a href="reference.html#spirit.qi_and_karma.reference.concepts.parser.valid_expressions">Valid
Expressions</a>
</h6>
@@ -126,7 +126,7 @@
</tr></tbody>
</table></div>
<a name="spirit.qi_and_karma.reference.concepts.parser.type_requirements"></a><h6>
-<a name="id648053"></a>
+<a name="id487523"></a>
<a href="reference.html#spirit.qi_and_karma.reference.concepts.parser.type_requirements">Type
Requirements</a>
</h6>
@@ -161,14 +161,14 @@
</tr></tbody>
</table></div>
<a name="spirit.qi_and_karma.reference.concepts.parser.invariants"></a><h6>
-<a name="id648138"></a>
+<a name="id487627"></a>
<a href="reference.html#spirit.qi_and_karma.reference.concepts.parser.invariants">Invariants</a>
</h6>
<p>
For any Parser xxx the following invariants always hold:
</p>
<a name="spirit.qi_and_karma.reference.concepts.parser.models"></a><h6>
-<a name="id648159"></a>
+<a name="id487659"></a>
<a href="reference.html#spirit.qi_and_karma.reference.concepts.parser.models">Models</a>
</h6>
<p>
Modified: branches/release/libs/spirit/doc/html/spirit/what_s_new.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/what_s_new.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/what_s_new.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -26,7 +26,7 @@
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="spirit.what_s_new"></a>What's New</h2></div></div></div>
<a name="spirit.what_s_new.spirit_classic"></a><h3>
-<a name="id616833"></a>
+<a name="id457100"></a>
<a href="what_s_new.html#spirit.what_s_new.spirit_classic">Spirit Classic</a>
</h3>
<p>
@@ -43,14 +43,12 @@
from the directory $BOOST_ROOT/boost/spirit/include. All files of Spirit Classic in this directory have a 'classic_'
prefixed to their name. For example the include
</p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
now should be written as:
</p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">classic_core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">classic_core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
To avoid namespace conflicts with the new Spirit V2 library we moved Spirit
Modified: branches/release/libs/spirit/doc/introduction.qbk
==============================================================================
--- branches/release/libs/spirit/doc/introduction.qbk (original)
+++ branches/release/libs/spirit/doc/introduction.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,17 +8,17 @@
[section Introduction]
-Boost Spirit is an object oriented, recursive-descent parser and output generation
-library for C++. It allows to write grammars and format descriptions using a
-format very similar to EBNF (Extended Backus Naur Form, see [4]) directly in
+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 EBNF (Extended Backus Naur Form, see [4]) directly in
C++. These inline grammar specifications can mix freely with other C++ code and,
thanks to the generative power of C++ templates, are immediately executable.
In retrospect, conventional compiler-compilers or parser-generators have to
perform an additional translation step from the source EBNF code to C or C++
code.
-The syntax and semantics of the libraries API directly form domain specific
-embedded languages (DSEL). In fact, Spirit exposes 3 different DSEL's to the
+The syntax and semantics of the libraries' API directly form domain-specific
+embedded languages (DSEL). In fact, Spirit exposes 3 different DSELs to the
user:
* one for creating parser grammars,
@@ -26,31 +26,31 @@
* and one for the description of the required output formats.
Since the target input grammars and output formats are written entirely in C++
-we do not need any separate tools to compile, preprocess, or integrate those
+we do not need any separate tools to compile, preprocess or integrate those
into the build process. __spirit__ allows seamless integration of the parsing
and output generation process with other C++ code. Often this allows for
simpler and more efficient code.
-Both, the created parsers and generators, are fully attributed which allows to
+Both the created parsers and generators are fully attributed which allows you to
easily build and handle hierarchical data structures in memory. These data
structures resemble the structure of the input data and can directly be used to
-generate arbitrarily formatted output.
+generate arbitrarily-formatted output.
The [link spirit.spiritstructure figure] below depicts the overall structure
-of the Boost Spirit library. The library consists out of 4 major parts:
+of the Boost Spirit library. The library consists of 4 major parts:
-* __classic__: This is the almost unchanged code base taken from the
+* __classic__: This is the almost-unchanged code base taken from the
former Boost Spirit V1.8 distribution. It has been moved into the namespace
boost::spirit::classic. A special compatibility layer has been added to
ensure complete compatibility with existing code using Spirit V1.8.
-* __qi__: This is the parser library allowing to build recursive
- descent parsers. The exposed domain specific language can be used to describe
+* __qi__: This is the parser library allowing you to build recursive
+ descent parsers. The exposed domain-specific language can be used to describe
the grammars to implement, and the rules for storing the parsed information.
-* __lex__: This is the library usable to create tokinizers (lexers). The domain
- specific language exposed by __lex__
-* __karma__: This is the generator library allowing to create code for
- recursive descent, data type driven output formatting. The exposed domain
- specific language is almost equivalent to the parser description language
+* __lex__: This is the library usable to create tokenizers (lexers). The
+ domain-specific language exposed by __lex__
+* __karma__: This is the generator library allowing you to create code for
+ recursive descent, data type-driven output formatting. The exposed
+ domain-specific language is almost equivalent to the parser description language
used in __qi__, except that it is used to describe the required output
format to generate from a given data structure.
@@ -67,13 +67,13 @@
The [link spirit.spiritkarmaflow figure] below shows the typical data flow of
some input being converted to some internal representation. After some
-(optional) transformation this data is converted back into some different,
-external representation. The picture highlights Spirit's the place in this data
+(optional) transformation these data are converted back into some different,
+external representation. The picture highlights Spirit's place in this data
transformation flow.
[fig ./images/spiritkarmaflow.png..The place of __qi__ and __karma__ in a data transformation flow of a typical application..spirit.spiritkarmaflow]
-[heading A quick overview about Parsing with __qi__]
+[heading A Quick Overview of Parsing with __qi__]
__qi__ is Spirit's sublibrary dealing with generating parsers based on a given
target grammar (essentially a format description of the input data to read).
@@ -94,12 +94,12 @@
expression = term >> *(('+' >> term) | ('-' >> term));
Through the magic of expression templates, this is perfectly valid and
-executable C++ code. The production rule `expression` is in fact an object that
-has a member function parse that does the work given a source code written in
+executable C++ code. The production rule `expression` is, in fact, an object that
+has a member function `parse` that does the work given a source code written in
the grammar that we have just declared. Yes, it's a calculator. We shall
simplify for now by skipping the type declarations and the definition of the
-rule integer invoked by factor. Now, the production rule `expression` in our
-grammar specification, traditionally called the start symbol, can recognize
+rule `integer` invoked by `factor`. Now, the production rule `expression` in our
+grammar specification, traditionally called the `start` symbol, can recognize
inputs such as:
12345
@@ -144,14 +144,14 @@
rule with the ubiquitous semi-colon, `;`.
-[heading A quick overview about Output Generation with __karma__]
+[heading A Quick Overview of Output Generation with __karma__]
-Spirit not only allows to describe the structure of the input. Starting with
+Spirit not only allows you to describe the structure of the input. Starting with
Version 2.0 it enables the specification of the output format for your data
-in a very similar way, and based on a single syntax and compatible semantics.
+in a similar way, and based on a single syntax and compatible semantics.
Let's assume we need to generate a textual representation from a simple data
-structure as a `std::vector<int>`. Conventional code probably would look like:
+structure such as a `std::vector<int>`. Conventional code probably would look like:
std::vector<int> v (initialize_and_fill());
std::vector<int>::iterator end = v.end();
@@ -159,10 +159,10 @@
std::cout << *it << std::endl;
which is not very flexible and quite difficult to maintain when it comes to
-changing the required output format. Spirit's sublibrary /Karma/ allows to
+changing the required output format. Spirit's sublibrary /Karma/ allows you to
specify output formats for arbitrary data structures in a very flexible way.
-following snippet is the /Karma/ format description used to create the very
-The same output as the traditional code above:
+The following snippet is the /Karma/ format description used to create the
+same output as the traditional code above:
*(int_ << eol)
@@ -177,13 +177,13 @@
[ [`*(double_ << ',')`] [`1.0,8.0,10.0,`] [A list of floating point numbers] ]
]
-The syntax is very similar to /Qi/ with the exception that we use the `<<`
+The syntax is similar to /Qi/ with the exception that we use the `<<`
operator for output concatenation. This should be easy to understand as it
follows the conventions used in the Standard's I/O streams.
-Another important feature of /karma/ is to allow to fully decouple the data
+Another important feature of /karma/ allows you to fully decouple the data
type from the output format. You can use the same output format with different
-data types as long as these conforma conceptually. The next table gives some
+data types as long as these conform conceptually. The next table gives some
related examples.
[table Different data types usable with the output format `(*int_ << eol)`
Modified: branches/release/libs/spirit/doc/lex.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex.qbk (original)
+++ branches/release/libs/spirit/doc/lex.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/introduction.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/introduction.qbk (original)
+++ branches/release/libs/spirit/doc/lex/introduction.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -29,17 +29,17 @@
though since some tools such as lint look at comments, this conflation is not
perfect.
-[heading Why Using a Separate Lexer]
+[heading Why Use a Separate Lexer?]
Typically, lexical scanning is done in a separate module from the parser,
-feeding the parser with a stream of input tokens only. Now, theoretically it is
-not necessary to do this separation. In the end there is only one set of
+feeding the parser with a stream of input tokens only. Theoretically it is
+not necessary implement this separation as in the end there is only one set of
syntactical rules defining the language, so in theory we could write the whole
-parser in one module. In fact, __qi__ allows to write parsers without using a
+parser in one module. In fact, __qi__ allows you to write parsers without using a
lexer, parsing the input character stream directly, and for the most part this
is the way __spirit__ has been used since its invention.
-However, the separation has both practical and theoretical bases and proves to
+However, this separation has both practical and theoretical bases and proves to
be very useful in practical applications. In 1956, Noam Chomsky defined the
"Chomsky Hierarchy" of grammars:
@@ -67,10 +67,10 @@
digit := [0-9]
identifier := letter [ letter | digit ]*
- integer := digit*
+ integer := digit+
Higher level parts of practical grammars tend to be more complex and can't be
-implemented using plain regular expressions anymore. We need to store
+implemented using plain regular expressions. We need to store
information on the built-in hardware stack while recursing the grammar
hierarchy, and that in fact this is the preferred approach used for top-down
parsing. Since it takes a different kind of abstract machine to parse the two
@@ -78,7 +78,7 @@
into a separate module which is built around the idea of a state machine. The
goal here is to use the simplest parsing technique needed for the job.
-Another, more practical reason for separating the scanner from the parser is
+Another, more practical, reason for separating the scanner from the parser is
the need for backtracking during parsing. The input data is a stream of
characters, which is often thought to be processed left to right without any
backtracking. Unfortunately, in practice most of the time that isn't possible.
@@ -114,14 +114,14 @@
rest of your program, making it possible to freely access any context
information and data structure. Since the C++ compiler sees all the code it
will generate optimal code nomatter what configuration options have been chosen
-by the user. __lex__ gives you all the features you could get from a similar
+by the user. __lex__ gives you the vast majority of features you could get from a similar
__flex__ program without the need to leave C++ as a host language:
-* the definition of tokens is done using regular expressions (patterns)
-* the token definitions can refer to special substitution string (pattern
+* The definition of tokens is done using regular expressions (patterns)
+* The token definitions can refer to special substitution strings (pattern
macros) simplifying pattern definitions
-* the generated lexical scanner may have multiple start states
-* it is possible to attach code to any of the token definitions; this code gets
+* The generated lexical scanner may have multiple start states
+* It is possible to attach code to any of the token definitions; this code gets
executed whenever the corresponding token pattern has been matched
Even if it is possible to use __lex__ to generate C++ code representing
@@ -129,10 +129,10 @@
more detail in the section __sec_lex_static_model__) - a model
very similar to the way __flex__ operates - we will mainly focus on the
opposite, the /dynamic/ model. You can directly integrate the token definitions
-into your C++ program, building the lexical analyzer dynamicly at runtime. The
+into your C++ program, building the lexical analyzer dynamically at runtime. The
dynamic model is something not supported by __flex__ or other lexical scanner
generators (such as __re2c__, __ragel__, etc.). But it is very flexible and
-allows to speed up the development of your application.
+allows you to speed up the development of your application.
[heading The Library Structure of __lex__]
Modified: branches/release/libs/spirit/doc/lex/lexer_attributes.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/lexer_attributes.qbk (original)
+++ branches/release/libs/spirit/doc/lex/lexer_attributes.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/lexer_primitives.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/lexer_primitives.qbk (original)
+++ branches/release/libs/spirit/doc/lex/lexer_primitives.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/lexer_quickstart1.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/lexer_quickstart1.qbk (original)
+++ branches/release/libs/spirit/doc/lex/lexer_quickstart1.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/lexer_quickstart2.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/lexer_quickstart2.qbk (original)
+++ branches/release/libs/spirit/doc/lex/lexer_quickstart2.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/lexer_quickstart3.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/lexer_quickstart3.qbk (original)
+++ branches/release/libs/spirit/doc/lex/lexer_quickstart3.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/lexer_semantic_actions.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/lexer_semantic_actions.qbk (original)
+++ branches/release/libs/spirit/doc/lex/lexer_semantic_actions.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/lexer_states.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/lexer_states.qbk (original)
+++ branches/release/libs/spirit/doc/lex/lexer_states.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/lexer_static_model.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/lexer_static_model.qbk (original)
+++ branches/release/libs/spirit/doc/lex/lexer_static_model.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/lexer_tutorials.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/lexer_tutorials.qbk (original)
+++ branches/release/libs/spirit/doc/lex/lexer_tutorials.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/parsing_using_a_lexer.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/parsing_using_a_lexer.qbk (original)
+++ branches/release/libs/spirit/doc/lex/parsing_using_a_lexer.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/token_definition.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/token_definition.qbk (original)
+++ branches/release/libs/spirit/doc/lex/token_definition.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/tokenizing.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/tokenizing.qbk (original)
+++ branches/release/libs/spirit/doc/lex/tokenizing.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/lex/tokens_values.qbk
==============================================================================
--- branches/release/libs/spirit/doc/lex/tokens_values.qbk (original)
+++ branches/release/libs/spirit/doc/lex/tokens_values.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/notes.qbk
==============================================================================
--- branches/release/libs/spirit/doc/notes.qbk (original)
+++ branches/release/libs/spirit/doc/notes.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/notes/style_guide.qbk
==============================================================================
--- branches/release/libs/spirit/doc/notes/style_guide.qbk (original)
+++ branches/release/libs/spirit/doc/notes/style_guide.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/preface.qbk
==============================================================================
--- branches/release/libs/spirit/doc/preface.qbk (original)
+++ branches/release/libs/spirit/doc/preface.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/attributes.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/attributes.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/attributes.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/debugging.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/debugging.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/debugging.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/directives.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/directives.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/directives.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/error_handling.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/error_handling.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/error_handling.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/generating.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/generating.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/generating.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/grammars.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/grammars.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/grammars.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/operators.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/operators.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/operators.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/parse_trees_and_asts.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/parse_trees_and_asts.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/parse_trees_and_asts.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/parsing.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/parsing.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/parsing.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/peg.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/peg.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/peg.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/primitives.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/primitives.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/primitives.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/quick_reference.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/quick_reference.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/quick_reference.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/roman.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/roman.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/roman.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -152,7 +152,7 @@
for doing pre and post initializations.
* The expression `a || b` reads: match a or b and in sequence. That is, if both
- `a` and `b` match, it must be in sequence; this is equivalent to `a >> !b | b`,
+ `a` and `b` match, it must be in sequence; this is equivalent to `a >> -b | b`,
but more efficient.
[heading Let's Parse!]
Modified: branches/release/libs/spirit/doc/qi_and_karma/rules.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/rules.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/rules.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/semantic_actions.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/semantic_actions.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/semantic_actions.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/qi_and_karma/warming_up.qbk
==============================================================================
--- branches/release/libs/spirit/doc/qi_and_karma/warming_up.qbk (original)
+++ branches/release/libs/spirit/doc/qi_and_karma/warming_up.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -43,7 +43,7 @@
[heading Trivial Example #3 Parsing one or more numbers]
-Create a parser that will accept one or more floating-point numbers.
+Create a parser that will accept zero or more floating-point numbers.
*double_
Modified: branches/release/libs/spirit/doc/rationale.qbk
==============================================================================
--- branches/release/libs/spirit/doc/rationale.qbk (original)
+++ branches/release/libs/spirit/doc/rationale.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/lex/lexer.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/lex/lexer.qbk (original)
+++ branches/release/libs/spirit/doc/reference/lex/lexer.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/lex/lexer_class.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/lex/lexer_class.qbk (original)
+++ branches/release/libs/spirit/doc/reference/lex/lexer_class.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/lex/token.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/lex/token.qbk (original)
+++ branches/release/libs/spirit/doc/reference/lex/token.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/lex/token_class.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/lex/token_class.qbk (original)
+++ branches/release/libs/spirit/doc/reference/lex/token_class.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/lex/tokendef.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/lex/tokendef.qbk (original)
+++ branches/release/libs/spirit/doc/reference/lex/tokendef.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/lex/tokendef_class.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/lex/tokendef_class.qbk (original)
+++ branches/release/libs/spirit/doc/reference/lex/tokendef_class.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/lex/tokenset.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/lex/tokenset.qbk (original)
+++ branches/release/libs/spirit/doc/reference/lex/tokenset.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/lex/tokenset_class.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/lex/tokenset_class.qbk (original)
+++ branches/release/libs/spirit/doc/reference/lex/tokenset_class.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/action.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/action.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/action.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/auxiliary.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/auxiliary.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/auxiliary.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/binary.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/binary.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/binary.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/char.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/char.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/char.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/debug.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/debug.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/debug.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/directive.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/directive.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/directive.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/generator.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/generator.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/generator.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/nonterminal.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/nonterminal.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/nonterminal.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/numeric.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/numeric.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/numeric.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/operator.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/operator.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/operator.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/parser.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/parser.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/parser.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/stream.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/stream.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/stream.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/reference/qi_and_karma/string.qbk
==============================================================================
--- branches/release/libs/spirit/doc/reference/qi_and_karma/string.qbk (original)
+++ branches/release/libs/spirit/doc/reference/qi_and_karma/string.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/references.qbk
==============================================================================
--- branches/release/libs/spirit/doc/references.qbk (original)
+++ branches/release/libs/spirit/doc/references.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/spirit2.qbk
==============================================================================
--- branches/release/libs/spirit/doc/spirit2.qbk (original)
+++ branches/release/libs/spirit/doc/spirit2.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/doc/what_s_new.qbk
==============================================================================
--- branches/release/libs/spirit/doc/what_s_new.qbk (original)
+++ branches/release/libs/spirit/doc/what_s_new.qbk 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
[/==============================================================================
Copyright (C) 2001-2008 Joel de Guzman
- Copyright (C) 2001-2008 Hartmut Kaiser
+ Copyright (C) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/karma/Jamfile
==============================================================================
--- branches/release/libs/spirit/example/karma/Jamfile (original)
+++ branches/release/libs/spirit/example/karma/Jamfile 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -8,7 +8,7 @@
project spirit-karma-example ;
exe quick_start1 : quick_start1.cpp ;
-exe actions : actions.cpp ;
+exe actions_example : actions.cpp ;
exe basic_facilities : basic_facilities.cpp ;
exe functor_facilities : functor_facilities.cpp ;
exe calc2_ast_dump : calc2_ast_dump.cpp ;
Modified: branches/release/libs/spirit/example/karma/basic_facilities.cpp
==============================================================================
--- branches/release/libs/spirit/example/karma/basic_facilities.cpp (original)
+++ branches/release/libs/spirit/example/karma/basic_facilities.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -16,22 +16,37 @@
#define BOOST_KARMA_DEFAULT_FIELD_LENGTH 25
#include <boost/config/warning_disable.hpp>
-#include <boost/spirit/include/karma.hpp>
-#include <boost/spirit/include/karma_stream.hpp>
#include <iostream>
#include <string>
#include <vector>
#include <list>
+#include <map>
#include <algorithm>
#include <cstdlib>
#include <boost/range.hpp>
-#include <boost/date_time//gregorian/gregorian.hpp>
+#include <boost/date_time/gregorian/gregorian.hpp>
+#include <boost/fusion/include/std_pair.hpp>
+
+///////////////////////////////////////////////////////////////////////////////
+// This streaming operator is needed to generate the output from the map below
+// Yes, it's heresy, but this operator has to live in namespace std to be
+// picked up by the compiler.
+namespace std {
+ inline std::ostream&
+ operator<<(std::ostream& os, std::pair<int const, std::string> v)
+ {
+ os << v.first << ": " << v.second;
+ return os;
+ }
+}
+
+#include <boost/spirit/include/karma.hpp>
+#include <boost/spirit/include/karma_stream.hpp>
using namespace boost::spirit;
using namespace boost::spirit::ascii;
-namespace karma = boost::spirit::karma;
///////////////////////////////////////////////////////////////////////////////
// Output the given containers in list format
@@ -70,6 +85,12 @@
c // data
) << std::endl << std::endl;
+ os <<
+ karma::format(
+ '[' << -(stream % ", ") << ']', // format description
+ c // data
+ ) << std::endl << std::endl;
+
// output the container as a comma separated list of items enclosed in '()'
os <<
karma::format(
@@ -167,6 +188,18 @@
std::cout << "std::vector<boost::date>" << std::endl;
output_container(std::cout, dates);
+ ///////////////////////////////////////////////////////////////////////////
+ // map of int --> string mappings
+ std::map<int, std::string> mappings;
+ mappings.insert(std::make_pair(0, "zero"));
+ mappings.insert(std::make_pair(1, "one"));
+ mappings.insert(std::make_pair(2, "two"));
+
+ std::cout << "-------------------------------------------------------------"
+ << std::endl;
+ std::cout << "std::map<int, std::string>" << std::endl;
+ output_container(std::cout, mappings);
+
return 0;
}
Modified: branches/release/libs/spirit/example/karma/functor_facilities.cpp
==============================================================================
--- branches/release/libs/spirit/example/karma/functor_facilities.cpp (original)
+++ branches/release/libs/spirit/example/karma/functor_facilities.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -31,13 +31,12 @@
template <typename OutputIterator, typename Context, typename Parameter>
bool operator()(Parameter const&, Context& ctx, OutputIterator& sink) const
{
- namespace karma = boost::spirit::karma;
return karma::generate(sink, int_ << ": ", counter++);
}
-
+
counter_impl(int& counter_)
: counter(counter_) {}
-
+
int& counter;
};
@@ -64,13 +63,12 @@
template <typename OutputIterator, typename Context, typename Parameter>
bool operator()(Parameter const& v, Context& ctx, OutputIterator& sink) const
{
- namespace karma = boost::spirit::karma;
return karma::generate(sink, open << xpr << close, v);
}
-
+
confix_impl(char const* open_, char const* close_, Expr const& xpr_)
: open(open_), close(close_), xpr(xpr_) {}
-
+
std::string open;
std::string close;
Expr xpr;
@@ -98,13 +96,12 @@
template <typename OutputIterator, typename Parameter>
bool operator()(OutputIterator& sink, Parameter const& v) const
{
- namespace karma = boost::spirit::karma;
return karma::generate(sink, xpr % delim, v);
}
-
+
list_impl(Expr const& xpr_, char const* delim_)
: xpr(xpr_), delim(delim_) {}
-
+
Expr xpr;
std::string delim;
};
@@ -131,7 +128,6 @@
///////////////////////////////////////////////////////////////////////////////
int main()
{
- namespace karma = boost::spirit::karma;
using namespace boost::phoenix;
using namespace boost::phoenix::arg_names;
Modified: branches/release/libs/spirit/example/karma/quick_start1.cpp
==============================================================================
--- branches/release/libs/spirit/example/karma/quick_start1.cpp (original)
+++ branches/release/libs/spirit/example/karma/quick_start1.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -17,7 +17,6 @@
using namespace boost::spirit;
using namespace boost::spirit::ascii;
-namespace karma = boost::spirit::karma;
///////////////////////////////////////////////////////////////////////////////
int main()
Modified: branches/release/libs/spirit/example/lex/example.hpp
==============================================================================
--- branches/release/libs/spirit/example/lex/example.hpp (original)
+++ branches/release/libs/spirit/example/lex/example.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/libs/spirit/example/lex/example1.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/example1.cpp (original)
+++ branches/release/libs/spirit/example/lex/example1.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/libs/spirit/example/lex/example2.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/example2.cpp (original)
+++ branches/release/libs/spirit/example/lex/example2.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/libs/spirit/example/lex/example3.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/example3.cpp (original)
+++ branches/release/libs/spirit/example/lex/example3.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/libs/spirit/example/lex/example4.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/example4.cpp (original)
+++ branches/release/libs/spirit/example/lex/example4.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/libs/spirit/example/lex/example5.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/example5.cpp (original)
+++ branches/release/libs/spirit/example/lex/example5.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/libs/spirit/example/lex/example6.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/example6.cpp (original)
+++ branches/release/libs/spirit/example/lex/example6.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
// Copyright (c) 2001-2007 Joel de Guzman
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/libs/spirit/example/lex/print_numbers.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/print_numbers.cpp (original)
+++ branches/release/libs/spirit/example/lex/print_numbers.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/lex/static_lexer/word_count_generate.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/static_lexer/word_count_generate.cpp (original)
+++ branches/release/libs/spirit/example/lex/static_lexer/word_count_generate.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/lex/static_lexer/word_count_static.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/static_lexer/word_count_static.cpp (original)
+++ branches/release/libs/spirit/example/lex/static_lexer/word_count_static.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/lex/static_lexer/word_count_tokens.hpp
==============================================================================
--- branches/release/libs/spirit/example/lex/static_lexer/word_count_tokens.hpp (original)
+++ branches/release/libs/spirit/example/lex/static_lexer/word_count_tokens.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/lex/strip_comments.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/strip_comments.cpp (original)
+++ branches/release/libs/spirit/example/lex/strip_comments.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/lex/strip_comments_lexer.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/strip_comments_lexer.cpp (original)
+++ branches/release/libs/spirit/example/lex/strip_comments_lexer.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/lex/word_count.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/word_count.cpp (original)
+++ branches/release/libs/spirit/example/lex/word_count.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/lex/word_count_functor.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/word_count_functor.cpp (original)
+++ branches/release/libs/spirit/example/lex/word_count_functor.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/lex/word_count_functor.flex
==============================================================================
--- branches/release/libs/spirit/example/lex/word_count_functor.flex (original)
+++ branches/release/libs/spirit/example/lex/word_count_functor.flex 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
%{
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/lex/word_count_functor_flex.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/word_count_functor_flex.cpp (original)
+++ branches/release/libs/spirit/example/lex/word_count_functor_flex.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -364,7 +364,7 @@
#line 1 "c:\\CVS\\boost\\libs\\spirit\\example\\lex\\word_count_functor.flex"
#define INITIAL 0
#line 2 "c:\\CVS\\boost\\libs\\spirit\\example\\lex\\word_count_functor.flex"
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/lex/word_count_lexer.cpp
==============================================================================
--- branches/release/libs/spirit/example/lex/word_count_lexer.cpp (original)
+++ branches/release/libs/spirit/example/lex/word_count_lexer.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/example/qi/calc3_lexer.cpp
==============================================================================
--- branches/release/libs/spirit/example/qi/calc3_lexer.cpp (original)
+++ branches/release/libs/spirit/example/qi/calc3_lexer.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/index.html
==============================================================================
--- branches/release/libs/spirit/index.html (original)
+++ branches/release/libs/spirit/index.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,13 +1,13 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
- <meta http-equiv="refresh" content="0; URL=classic/index.html">
+ <meta http-equiv="refresh" content="0; URL=doc/html/index.html">
</head>
<body>
- Automatic redirection failed, click this
- link <hr>
+ Automatic redirection failed, click this
+ link <hr>
<p>© Copyright Beman Dawes, 2001</p>
- <p>Distributed under the Boost Software License, Version 1.0. (See
+ <p>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../LICENSE_1_0.txt">
LICENSE_1_0.txt</a> or copy at
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</p>
Modified: branches/release/libs/spirit/phoenix/index.html
==============================================================================
--- branches/release/libs/spirit/phoenix/index.html (original)
+++ branches/release/libs/spirit/phoenix/index.html 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -4,12 +4,7 @@
<meta http-equiv="refresh" content="0; URL=doc/html/index.html">
</head>
<body>
- Automatic redirection failed, click this
- link <hr>
- <p>© Copyright Beman Dawes, 2001</p>
- <p>Distributed under the Boost Software License, Version 1.0. (See
- accompanying file <a href="../../LICENSE_1_0.txt">
- LICENSE_1_0.txt</a> or copy at
- www.boost.org/LICENSE_1_0.txt)</p>
+ Automatic redirection failed, click this
+ link
</body>
-</html>
\ No newline at end of file
+</html>
Modified: branches/release/libs/spirit/phoenix/test/bind/bind_member_variable_tests.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/bind/bind_member_variable_tests.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/bind/bind_member_variable_tests.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#include <iostream>
@@ -23,15 +23,81 @@
{
int m;
};
+
+ struct xx {
+ int m;
+ };
+}
+
+template<class T, class F>
+void write_test(F f) {
+ T x_;
+ bind(&T::m, f(x_))() = 122;
+ BOOST_TEST(x_.m == 122);
+ bind(&T::m, arg1)(f(x_)) = 123;
+ BOOST_TEST(x_.m == 123);
}
+template<class T, class F>
+void read_test(F f) {
+ T x_;
+ x_.m = 123;
+
+ BOOST_TEST(bind(&T::m, f(x_))() == 123);
+ BOOST_TEST(bind(&T::m, arg1)(f(x_)) == 123);
+}
+
+struct identity
+{
+ template<class T>
+ T& operator()(T& t) const
+ {
+ return t;
+ }
+};
+
+struct constify
+{
+ template<class T>
+ const T& operator()(const T& t) const
+ {
+ return t;
+ }
+};
+
+struct add_pointer
+{
+ template<class T>
+ T* const operator()(T& t) const
+ {
+ return &t;
+ }
+};
+
+struct add_const_pointer
+{
+ template<class T>
+ const T* const operator()(const T& t) const
+ {
+ return &t;
+ }
+};
+
int
main()
{
- test::x x_;
- bind(&test::x::m, x_)() = 123;
- bind(&test::x::m, arg1)(x_) = 123;
- BOOST_TEST(x_.m == 123);
+ write_test<test::x>(identity());
+ write_test<test::x>(add_pointer());
+ write_test<test::xx>(identity());
+ write_test<test::xx>(add_pointer());
+ read_test<test::x>(identity());
+ //read_test<test::x>(constify()); // this fails because of capture by value.
+ read_test<test::x>(add_pointer());
+ read_test<test::x>(add_const_pointer());
+ read_test<test::xx>(identity());
+ read_test<test::xx>(constify());
+ read_test<test::xx>(add_pointer());
+ read_test<test::xx>(add_const_pointer());
return boost::report_errors();
}
Modified: branches/release/libs/spirit/phoenix/test/operator/io_tests.cpp
==============================================================================
--- branches/release/libs/spirit/phoenix/test/operator/io_tests.cpp (original)
+++ branches/release/libs/spirit/phoenix/test/operator/io_tests.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -15,6 +15,8 @@
#include <boost/spirit/include/phoenix_core.hpp>
#include <boost/spirit/include/phoenix_operator.hpp>
+#include <boost/fusion/include/io.hpp>
+
using namespace boost::phoenix;
using namespace boost::phoenix::arg_names;
using namespace std;
@@ -37,6 +39,7 @@
(cout << val(hello) << world << ", you da man!\n")();
for_each(v.begin(), v.end(), cout << arg1 << ',');
+ (cout << arg1 + 1)(i100);
(cout << arg1 << "this is it, shukz:" << hex << arg2 << endl << endl)(msg, i100);
Modified: branches/release/libs/spirit/test/karma/actions.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/actions.cpp (original)
+++ branches/release/libs/spirit/test/karma/actions.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Copyright (c) 2001-2008 Joel de Guzman
Distributed under the Boost Software License, Version 1.0. (See accompanying
Modified: branches/release/libs/spirit/test/karma/alternative.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/alternative.cpp (original)
+++ branches/release/libs/spirit/test/karma/alternative.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/binary.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/binary.cpp (original)
+++ branches/release/libs/spirit/test/karma/binary.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/case_handling.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/case_handling.cpp (original)
+++ branches/release/libs/spirit/test/karma/case_handling.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/center_alignment.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/center_alignment.cpp (original)
+++ branches/release/libs/spirit/test/karma/center_alignment.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/char.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/char.cpp (original)
+++ branches/release/libs/spirit/test/karma/char.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/delimiter.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/delimiter.cpp (original)
+++ branches/release/libs/spirit/test/karma/delimiter.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/eol.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/eol.cpp (original)
+++ branches/release/libs/spirit/test/karma/eol.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/eps.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/eps.cpp (original)
+++ branches/release/libs/spirit/test/karma/eps.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2007 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/format_manip.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/format_manip.cpp (original)
+++ branches/release/libs/spirit/test/karma/format_manip.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/functor.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/functor.cpp (original)
+++ branches/release/libs/spirit/test/karma/functor.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/grammar.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/grammar.cpp (original)
+++ branches/release/libs/spirit/test/karma/grammar.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/grammar_fail.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/grammar_fail.cpp (original)
+++ branches/release/libs/spirit/test/karma/grammar_fail.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/int_numerics.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/int_numerics.cpp (original)
+++ branches/release/libs/spirit/test/karma/int_numerics.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/kleene.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/kleene.cpp (original)
+++ branches/release/libs/spirit/test/karma/kleene.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/lazy.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/lazy.cpp (original)
+++ branches/release/libs/spirit/test/karma/lazy.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/left_alignment.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/left_alignment.cpp (original)
+++ branches/release/libs/spirit/test/karma/left_alignment.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/list.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/list.cpp (original)
+++ branches/release/libs/spirit/test/karma/list.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/lit.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/lit.cpp (original)
+++ branches/release/libs/spirit/test/karma/lit.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/none.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/none.cpp (original)
+++ branches/release/libs/spirit/test/karma/none.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/optional.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/optional.cpp (original)
+++ branches/release/libs/spirit/test/karma/optional.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/pattern.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/pattern.cpp (original)
+++ branches/release/libs/spirit/test/karma/pattern.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/real_numerics.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/real_numerics.cpp (original)
+++ branches/release/libs/spirit/test/karma/real_numerics.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/right_alignment.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/right_alignment.cpp (original)
+++ branches/release/libs/spirit/test/karma/right_alignment.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/rule_fail.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/rule_fail.cpp (original)
+++ branches/release/libs/spirit/test/karma/rule_fail.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -11,6 +11,7 @@
#include <boost/spirit/include/karma_numeric.hpp>
#include <boost/spirit/include/karma_nonterminal.hpp>
#include <boost/spirit/include/karma_generate.hpp>
+#include <boost/function_output_iterator.hpp>
#include "test.hpp"
Modified: branches/release/libs/spirit/test/karma/sequence.cpp
==============================================================================
--- branches/release/libs/spirit/test/karma/sequence.cpp (original)
+++ branches/release/libs/spirit/test/karma/sequence.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/karma/test.hpp
==============================================================================
--- branches/release/libs/spirit/test/karma/test.hpp (original)
+++ branches/release/libs/spirit/test/karma/test.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/lex/lexertl1.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/lexertl1.cpp (original)
+++ branches/release/libs/spirit/test/lex/lexertl1.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/lex/lexertl2.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/lexertl2.cpp (original)
+++ branches/release/libs/spirit/test/lex/lexertl2.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/lex/lexertl3.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/lexertl3.cpp (original)
+++ branches/release/libs/spirit/test/lex/lexertl3.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/lex/lexertl4.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/lexertl4.cpp (original)
+++ branches/release/libs/spirit/test/lex/lexertl4.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/lex/lexertl5.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/lexertl5.cpp (original)
+++ branches/release/libs/spirit/test/lex/lexertl5.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/lex/state_switcher_test.cpp
==============================================================================
--- branches/release/libs/spirit/test/lex/state_switcher_test.cpp (original)
+++ branches/release/libs/spirit/test/lex/state_switcher_test.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/lex/test.hpp
==============================================================================
--- branches/release/libs/spirit/test/lex/test.hpp (original)
+++ branches/release/libs/spirit/test/lex/test.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/lex/test_parser.hpp
==============================================================================
--- branches/release/libs/spirit/test/lex/test_parser.hpp (original)
+++ branches/release/libs/spirit/test/lex/test_parser.hpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/qi/alternative.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/alternative.cpp (original)
+++ branches/release/libs/spirit/test/qi/alternative.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/qi/binary.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/binary.cpp (original)
+++ branches/release/libs/spirit/test/qi/binary.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/qi/char.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/char.cpp (original)
+++ branches/release/libs/spirit/test/qi/char.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/qi/char_class.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/char_class.cpp (original)
+++ branches/release/libs/spirit/test/qi/char_class.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -75,6 +75,10 @@
BOOST_TEST(test("0", xdigit));
BOOST_TEST(test("f", xdigit));
BOOST_TEST(!test("g", xdigit));
+
+ BOOST_TEST(test("é", alpha));
+ BOOST_TEST(test("é", lower));
+ BOOST_TEST(!test("é", upper));
}
{
Modified: branches/release/libs/spirit/test/qi/functor.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/functor.cpp (original)
+++ branches/release/libs/spirit/test/qi/functor.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/qi/grammar_fail.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/grammar_fail.cpp (original)
+++ branches/release/libs/spirit/test/qi/grammar_fail.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/qi/int.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/int.cpp (original)
+++ branches/release/libs/spirit/test/qi/int.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/qi/match_manip.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/match_manip.cpp (original)
+++ branches/release/libs/spirit/test/qi/match_manip.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2008 Hartmut Kaiser
+// Copyright (c) 2001-2009 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: branches/release/libs/spirit/test/qi/real.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/real.cpp (original)
+++ branches/release/libs/spirit/test/qi/real.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Use, modification and distribution is subject to the Boost Software
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
Modified: branches/release/libs/spirit/test/qi/rule_fail.cpp
==============================================================================
--- branches/release/libs/spirit/test/qi/rule_fail.cpp (original)
+++ branches/release/libs/spirit/test/qi/rule_fail.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2008 Hartmut Kaiser
+ Copyright (c) 2001-2009 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Deleted: branches/release/libs/spirit/test/repeat_ast_tests.cpp
==============================================================================
--- branches/release/libs/spirit/test/repeat_ast_tests.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
+++ (empty file)
@@ -1,95 +0,0 @@
-/*=============================================================================
- Copyright (c) 2004 Chris Hoeppler
- http://spirit.sourceforge.net/
-
- Use, modification and distribution is subject to the Boost Software
- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-
-// This test verifies, that reapeat_p et.al. work correctly while using AST's
-
-# include <map>
-# include <boost/detail/lightweight_test.hpp>
-# include <iostream>
-# include <string>
-
-# include <boost/spirit/core.hpp>
-# include <boost/spirit/utility/loops.hpp>
-# include <boost/spirit/tree/ast.hpp>
-# include <boost/spirit/tree/tree_to_xml.hpp>
-
-using namespace boost::spirit;
-
-static const int numID = 1;
-static const int funcID = 2;
-static const int expressionID = 3;
-
-struct grammar_fail : public grammar<grammar_fail>
-{
- template <typename ScannerT>
- struct definition
- {
- definition(grammar_fail const& /*self */)
- {
- num = leaf_node_d[real_p];
- func = root_node_d[ch_p('+') | '-']
- >> repeat_p(2)[expression];
- expression = func | num;
- }
- rule<ScannerT, parser_context<>, parser_tag<numID> > num;
- rule<ScannerT, parser_context<>, parser_tag<funcID> > func;
- typedef rule<ScannerT, parser_context<>, parser_tag<expressionID> > expr_t;
- expr_t expression;
- expr_t const& start() const { return expression; }
- };
-};
-struct grammar_success : public grammar<grammar_success>
-{
- template <typename ScannerT>
- struct definition
- {
- definition(grammar_success const& /*self */)
- {
- num = leaf_node_d[real_p];
- func = root_node_d[ch_p('+') | '-']
- >> expression >> expression; // line differing from grammar_fail
- expression = func | num;
- }
- rule<ScannerT, parser_context<>, parser_tag<numID> > num;
- rule<ScannerT, parser_context<>, parser_tag<funcID> > func;
- typedef rule<ScannerT, parser_context<>, parser_tag<expressionID> > expr_t;
- expr_t expression;
- expr_t const& start() const { return expression; }
- };
-};
-
-int main() {
-
- std::map<parser_id, std::string> rule_names;
- rule_names[expressionID] = "expression";
- rule_names[funcID] = "func";
- rule_names[numID] = "num";
-
- std::string test("+ 1 - 2 3");
-
-// case 1
- grammar_fail g_fail;
- tree_parse_info<> info1 = ast_parse(test.c_str(), g_fail, space_p);
- BOOST_TEST(info1.full);
-
- //std::cout << "...Case 1: Using repeat_p\n";
- //tree_to_xml(std::cerr, info1.trees, test, rule_names);
-
-// case 2
- grammar_success g_success;
- tree_parse_info<> info2 = ast_parse(test.c_str(), g_success, space_p);
- BOOST_TEST(info2.full);
-
- //std::cout << "...Case 2: No repeat_p\n";
- //tree_to_xml(std::cerr, info2.trees, test, rule_names);
- // could be used for test case instead of printing the xml stuff:
- BOOST_TEST(info2.trees.begin()->children.size() == 2);
- BOOST_TEST(info1.trees.begin()->children.size() == 2);
- return boost::report_errors();
-}
Modified: branches/release/libs/spirit/test/support/hold_any.cpp
==============================================================================
--- branches/release/libs/spirit/test/support/hold_any.cpp (original)
+++ branches/release/libs/spirit/test/support/hold_any.cpp 2009-01-15 12:34:54 EST (Thu, 15 Jan 2009)
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2008 Hartmut Kaiser
+// Copyright (c) 2007-2009 Hartmut Kaiser
// Copyright (c) Christopher Diggins 2005
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk